修改Django“保存并添加另一个”按钮,根据刚刚保存的对象上的字段值设置字段的初始值

时间:2012-12-28 09:29:21

标签: django forms django-forms django-admin

我有一个基本的博客应用程序,其中包含模型条目和类别。 Entry中的一个字段是ForeignKey to Category。当用户添加条目并选择"保存并添加另一个条目时,如果新表单的类别设置为等于仅仅对象的类别,我会喜欢它保存。

我该如何实现?

1 个答案:

答案 0 :(得分:9)

this question的帮助下计算出来。诀窍是修改response_add

response_changeModelAdmin方法
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"))