gpt4 book ai didi

python - 定义自定义表单以在 Django 的 ModelAdmin 添加 View 中使用

转载 作者:太空宇宙 更新时间:2023-11-03 13:23:50 24 4
gpt4 key购买 nike

我正在尝试使用 ModelAdmin 类在管理员中公开 Django 模型。 ModelAdmin 似乎假设您使用相同的表单进行添加和更改。我希望 add_view 使用仅列出少量必填字段的简化形式。提交后,它将重定向到 change_view 并使用 ModelForm 的默认表单呈现几乎所有字段。

最简单的方法是什么?我检查了代码,但没有看到明确的方法。 ModelAdmin 倾向于在 add_view 和 change_view 中引用单个 self.form 引用。我正在考虑覆盖 add_view(),但我不想重新实现所有代码。覆盖 get_form() 可能更有效,但我看不到如何检测 get_form() 是否在 add_view 或 change_view 期间被调用。

最佳答案

change_view 期间调用时,

get_form() 会传递一个 obj 参数。只需检测是否根据需要返回新的表单/调整参数。

例如:


class MyModelAdmin(admin.ModelAdmin):
def get_form(self, request, obj=None, **kwargs):
# hide every other field apart from url
# if we are adding
if obj is None:
kwargs['fields'] = ['url']
return super(MyModelAdmin, self).get_form(request, obj, **kwargs)

将强制表单在添加时仅显示“url”字段,否则显示其他所有内容。

关于python - 定义自定义表单以在 Django 的 ModelAdmin 添加 View 中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4682665/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com