Мы пытаемся создать собственный рабочий процесс для сравнения записей базы данных с помощью django-admin
и django-admin-json-editor
.Хотя было легко запустить одну форму, мы не знаем, как отобразить вторую форму с тем же макетом, но с другим queryset-object
.
. Мы уже добавили содержимое второго запроса в extra_content
функции change_view
нашей модели администратора.
def change_view(self, request, object_id, form_url='', extra_context=None):
chosen_object = Community.objects.get(pk=object_id)
updated_object = Community.objects.get(community_id=chosen_object.community_id, community_updated=True)
extra_context = extra_context or {}
extra_context['community_data_queryobject'] = updated_object
extra_context['community_update'] = updated_object.community_updated
return super().change_view(
request, object_id, form_url, extra_context=extra_context,
)
Мы используем пользовательский шаблон change_form.html
, где мы можем видеть наш extra_context
- но у нас нет никакой реальной подсказки, в каком местемы должны создать вторую форму, используя model/widgets
для данных надлежащим образом.
Форма:
class CommunityForm(ModelForm):
class Meta:
model = Community
fields = '__all__'
widgets = {
'president': JSONEditorWidget(person_schema.person_schema, editor_options=options),
'directorate': JSONEditorWidget(person_schema.person_schema, editor_options=options),
'synagogue': JSONEditorWidget(synagoge_schema.synagogue_schema, editor_options=options),
'rabbi': JSONEditorWidget(rabbi_schema.rabbi_schema, editor_options=options),
}