【发布时间】:2021-12-26 18:53:48
【问题描述】:
我想在我的 Django 管理仪表板中实现一个设置,我可以在其中禁用/启用特定字段。如果我应该禁用该字段,该字段中的数据将不会呈现在网页上。如果我应该启用该字段,那么数据将显示在网页中。我只想从我的管理仪表板执行此操作。
这是我的models.py:
class Product(models.Model):
category = models.ForeignKey(Category, related_name='products', on_delete=models.CASCADE)
name = models.CharField(max_length=100, unique=True)
slug = models.SlugField(max_length=100, unique=True)
image = models.ImageField(upload_to='products/')
description = models.TextField()
quantity = models.CharField(max_length=10)
price = models.DecimalField(max_digits=10, decimal_places=2)
available = models.BooleanField(default=True)
这是admin.py:
@admin.register(Product)
class ProductAdmin(admin.ModelAdmin):
list_display = ('name', 'category', 'slug', 'price', 'available')
list_filter = ('category', 'available')
list_editable = ('price', 'available')
prepopulated_fields = {'slug': ('name',)}
我希望能够从我的管理仪表板启用/禁用(可能像一个切换按钮)description 字段。有没有办法在我的admin.py 文件中实现这一点?我该怎么办?谢谢。
编辑:为了更好地理解(正如评论所建议的那样),我想在管理仪表板中实现一个主切换,它可以打开/关闭向用户显示的每个实例的所有描述。
【问题讨论】:
-
这似乎有点不清楚。您是否想切换该字段在 Django 管理中是否像折叠元素一样可见,或者您是否想要模型上的一个额外字段来确定用户是否可以在您的 HTML 模板中看到该实例的描述,或者您想要关闭向用户显示的每个实例的所有描述的主开关?
-
我也不清楚。如果您想在访问此仪表板时在仪表板上隐藏/显示,那么也许您应该使用 JavaScript 切换 HTML 并将此开始保存在 cookie 中。如果您想在其他用户访问页面时使用仪表板将其隐藏,那么它可能需要其他表进行设置,并且在为其他用户呈现 HTML 时需要使用这些设置。
-
@Jacinator 您评论的后半部分正是我想要实现的。管理仪表板中的主开关,用于打开/关闭向用户显示的每个实例的所有描述。
标签: python django django-models django-admin