5

我有一个带有模型条目和类别的基本博客应用程序。条目中的字段之一是类别的外键。当用户添加一个条目并选择“保存并添加另一个”时,我希望新表单的类别设置为等于刚刚保存的对象的类别。

我怎样才能做到这一点?

4

1 回答 1

10

在这个问题的一些帮助下想通了。诀窍是修改response_addresponse_change方法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"))

对于 Python 3,替换

if request.POST.has_key('_addanother'):

if '_addanother' in request.POST:
于 2012-12-28T11:08:18.330 回答