【问题标题】:How to make separate forms for one model in Django admin如何在 Django admin 中为一个模型制作单独的表单
【发布时间】:2013-08-29 13:20:47
【问题描述】:

是否可以在 Django admin 中为添加新项目和查看项目创建不同的视图。例如,我为添加项目创建了新表单,但现在当我打开编辑视图时,我需要模型中的基本表单。

【问题讨论】:

  • 是的,这是可能的。阅读ModelForms

标签: python django django-admin


【解决方案1】:

是的,这是可能的。这样做:

class MyModelAdmin(admin.ModelAdmin):

    def get_form(self, request, obj=None, **kwargs):            
        if not obj:
            return MyModelCreateForm
        return super(MyModelAdmin, self).get_form(request, obj, **kwargs)

【讨论】:

  • 非常感谢,但我将 add_item 表单声明为 ModelAdmin 类表单 = NewForm 的属性。当我打开 change_item 时,我有两个合并的表格。我如何才能真正分离这些表格。并且 exlude 和 fields 属性应该可以正常工作。
  • 在我给定的示例中,如果您将 ModalAdmin 属性“表单”设置为仅在对象编辑页面上使用的内容。在创建对象时将使用 MyModelCreateForm。如果你不指定任何形式的属性,默认的 ModelForm 将被使用。
  • 这在 Django >= 3.8 中不起作用。
猜你喜欢
  • 2019-09-15
  • 2018-05-18
  • 2012-05-03
  • 2011-08-08
  • 1970-01-01
  • 2019-08-05
  • 1970-01-01
  • 2018-10-26
  • 2015-10-06
相关资源
最近更新 更多