Mark116
Mark116

Reputation: 723

Django populate form

In my modelClass in admin.py I've defined sub-classes "changelist_view" and "changeform_view" to send two custom values to my template view.

As result when I open the change page of my model form it remain empty. Can I populate the form?

class WorkerAdmin(admin.ModelAdmin):
  change_form_template = 'admin/change_form.html'
  change_list_template = 'admin/change_list.html'

  form = WorkerAdminForm

  def changelist_view(self, request, extra_context=None):
    extra_context = extra_context or {}
    extra_context['model_title'] = 'Workers'
    extra_context['page_title']  = 'Workers Manage'
    return super(WorkerAdmin, self).changelist_view(request, extra_context=extra_context)

  def changeform_view(self, request, object_id=None, form_url='', extra_context=None):
    extra_context = extra_context or {}
    extra_context['model_title'] = 'Workers'
    extra_context['page_title']  = 'Worker Add'
    return super(WorkerAdmin, self).changeform_view(request, extra_context=extra_context)

admin.site.register(Worker, WorkerAdmin)

Upvotes: 0

Views: 34

Answers (1)

Daniel Roseman
Daniel Roseman

Reputation: 599490

You've missed passing the object_id and form_url parameters into the superclass.

return super(WorkerAdmin, self).changeform_view(request, object_id=object_id, form_url=form_url, extra_context=extra_context)

Upvotes: 1

Related Questions