Измените Django кнопку «Сохранить и добавить другую», чтобы установить начальное значение поля, основанное на значении поля только что сохраненного объекта

У меня есть базовое приложение для блога с моделями Entry и Category. Одним из полей в Entry является ForeignKey to Category. Когда пользователь добавляет запись и выбирает «сохранить и добавить другую», мне бы хотелось, чтобы категория новой формы была равна категории категории только что сохраненного объекта.

Как я могу это сделать?

2
добавлено
Просмотры: 1
de

1 ответы

Figured it out with some help from this question. The trick was to modify response_add and response_change methods of the ModelAdmin

class EntryAdmin(admin.ModelAdmin):
    ...
    def response_add(self, request, obj, post_url_continue=None):
        if request.POST.has_key('_addanother'):
            url = reverse("admin:blog_entry_add")
            category_id = request.POST['category']
            qs = '?category=%s' % category_id
            return HttpResponseRedirect(''.join((url, qs)))
        else:
            return HttpResponseRedirect(reverse("admin:blog_entry_changelist"))

    def response_change(self, request, obj, post_url_continue=None):
        if request.POST.has_key('_addanother'):
            url = reverse("admin:blog_entry_add")
            category_id = request.POST['category']
            qs = '?category=%s' % category_id
            return HttpResponseRedirect(''.join((url, qs)))
        else:
            return HttpResponseRedirect(reverse("admin:blog_entry_changelist"))
8
добавлено