gpt4 book ai didi

django - 在 Django 中隐藏内联表单

转载 作者:行者123 更新时间:2023-12-02 02:25:19 25 4
gpt4 key购买 nike

我的 Django ModelAdmin 根据用户权限显示不同的表单。我已经用 ModelForm 的 (get_form, get_fieldsets) 解决了这个问题,但是如何处理内联呢?

class NewsAdmin(admin.ModelAdmin):
form = NewsAdminForm
writing_form = NewsWritingForm

inlines = (LinkInline, FileInline)

ModelAdmin 在获取请求对象之前在 ModelAdmin.__init__() 中初始化它们。唯一的方法似乎是使用 CSS 来隐藏它们。

最佳答案

您可以使用 ModelAdmin get_inline_instances 函数。以下代码从 add_view 中删除内联:

from django.contrib import admin
from models import FooModel

class FooInline(admin.StackedInline):
model = FooModel

class MyModelAdmin(admin.ModelAdmin):
inlines = [FooInline]

def get_inline_instances(self, request, obj=None):
return obj and super(MyModelAdmin, self).get_inline_instances(request, obj) or []

关于django - 在 Django 中隐藏内联表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5867414/

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