在 list_display 中的字段时隐藏 Django 管理 table 中的 edit/add/remove 按钮
Hide edit/add/remove buttons in Django admin table when field in list_display
我想在 Django 管理工具中隐藏外键字段的编辑、添加和删除图标。
有可能实现吗?如果是,怎么做?
到目前为止,这是我的代码:
@admin.register(Request)
class RequestAdmin(admin.ModelAdmin):
list_display = (
"name",
"contact_method",
"neighborhood",
"adults",
"children",
"prescriptions",
"volunteer",
"status",
"due_date",
)
list_editable = ("status", "volunteer")
def neighborhood(self, obj):
if obj.address and obj.address.get("neighborhood", False):
neighborhood = obj.address["neighborhood"]
if obj.address.get("details", False):
return f"{neighborhood} - {obj.address['details']}"
return neighborhood
看来问题是我也注册了另一个型号Volunteer
。
@admin.register(Volunteer)
class VolunteerAdmin(admin.ModelAdmin):
list_display = ("name", "contact_method", "neighborhood", "valid_ID")
def neighborhood(self, obj):
if obj.address and obj.address.get("neighborhood", False):
return obj.address["neighborhood"]
不过,我也需要保留这个模型。那么,我该如何实现呢?
我能够通过在内部 class Media:
中指定文件,为 RequestAdmin
使用自定义 CSS 来隐藏这些图标
@admin.register(Request)
class RequestAdmin(admin.ModelAdmin):
list_display = (
"name",
"contact_method",
"neighborhood",
"adults",
"children",
"prescriptions",
"volunteer",
"status",
"due_date",
)
list_editable = ("status", "volunteer")
def neighborhood(self, obj):
if obj.address and obj.address.get("neighborhood", False):
neighborhood = obj.address["neighborhood"]
if obj.address.get("details", False):
return f"{neighborhood} - {obj.address['details']}"
return neighborhood
# This is required to use custom extra CSS
class Media:
css = {"all": ("volunteering/css/style.css",)}
volunteering/static/volunteering/css/style.css
内容如下:
.related-widget-wrapper-link {
display: none;
}
应用的结构如下:
table 现在是这样显示的:
我想在 Django 管理工具中隐藏外键字段的编辑、添加和删除图标。
有可能实现吗?如果是,怎么做?
到目前为止,这是我的代码:
@admin.register(Request)
class RequestAdmin(admin.ModelAdmin):
list_display = (
"name",
"contact_method",
"neighborhood",
"adults",
"children",
"prescriptions",
"volunteer",
"status",
"due_date",
)
list_editable = ("status", "volunteer")
def neighborhood(self, obj):
if obj.address and obj.address.get("neighborhood", False):
neighborhood = obj.address["neighborhood"]
if obj.address.get("details", False):
return f"{neighborhood} - {obj.address['details']}"
return neighborhood
看来问题是我也注册了另一个型号Volunteer
。
@admin.register(Volunteer)
class VolunteerAdmin(admin.ModelAdmin):
list_display = ("name", "contact_method", "neighborhood", "valid_ID")
def neighborhood(self, obj):
if obj.address and obj.address.get("neighborhood", False):
return obj.address["neighborhood"]
不过,我也需要保留这个模型。那么,我该如何实现呢?
我能够通过在内部 class Media:
中指定文件,为RequestAdmin
使用自定义 CSS 来隐藏这些图标
@admin.register(Request)
class RequestAdmin(admin.ModelAdmin):
list_display = (
"name",
"contact_method",
"neighborhood",
"adults",
"children",
"prescriptions",
"volunteer",
"status",
"due_date",
)
list_editable = ("status", "volunteer")
def neighborhood(self, obj):
if obj.address and obj.address.get("neighborhood", False):
neighborhood = obj.address["neighborhood"]
if obj.address.get("details", False):
return f"{neighborhood} - {obj.address['details']}"
return neighborhood
# This is required to use custom extra CSS
class Media:
css = {"all": ("volunteering/css/style.css",)}
volunteering/static/volunteering/css/style.css
内容如下:
.related-widget-wrapper-link {
display: none;
}
应用的结构如下:
table 现在是这样显示的: