当Django的reverse()用于管理员时,如何设置默认字段值"添加"页?

时间:2014-12-31 16:51:41

标签: python django

在Django中我使用:

return HttpResponseRedirect(reverse("admin:article_article_add"))

我可以看到管理员"添加"页面。
在这种情况下,我可以以某种方式为我的模型的字段设置值吗? 也许这是不可能的,或者我找不到它。

当我重定向到"添加新的"时,我想预定义一些字段。页

2 个答案:

答案 0 :(得分:1)

你可以通过在GET中传递一些值来做到这一点,但这不会一直有效(例如,对于datefields等...),我会使用ModelAdmins方法自定义get_form

class MyModelAdmin(admin.ModelAdmin):
    def get_form(self, request, obj=None, **kwargs):
       form = super(MyModelAdmin, self).get_form(request, obj, **kwargs)
       form.base_fields['your_field_name'].initial = 'abcd'
       return form

答案 1 :(得分:0)

您是否尝试将其添加到字符串中?

reverse("admin:...")+"&fieldname=value"

你可能需要像这样使用格式化

return HttpResponseRedirect('%s%s'%(reverse("..."), '&field=value'))

取决于您的值,您可能还需要使用uri编码例程(有很多方法可以执行此操作)。