要创建管理界面来编辑某些字段,这是最佳做法吗?自定义默认的Django admin或创建管理模板?
我想通过管理员修改status
字段。但其他字段,管理员无法编辑..在这种情况下,我可以为管理员编写新的视图和模板,还是只定制默认的管理面板?
class SendProduct(models.Model):
PAYMENT_CHOICE = (
('A', 'Advanced'),
('C', 'COD'),
)
item_name = models.CharField(max_length=200)
item_details = models.TextField()
delivery_address = models.TextField()
payment_type = models.CharField(max_length=1, choices=PAYMENT_CHOICE)
payable_amount = models.IntegerField(default=0)
delivery_charge = models.IntegerField(default=0)
qr_code = models.ImageField(upload_to='qrcode', blank=True, null=True)
user = models.ForeignKey(Profile, on_delete=models.CASCADE)
status = models.IntegerField(default=0)
答案 0 :(得分:1)
排除字段并将其设为只读(admin.py
)。下面给出一个例子
class SendProductAdmin(admin.ModelAdmin):
exclude=("item_name ",)
readonly_fields=('item_name', )
admin.site.register(SendProductAdmin)
请注意,您可以根据需要排除任意数量的字段。
答案 1 :(得分:0)
管理面板的使用与您开发的视图之间存在差异,您应注意的区别在于管理面板适用于staff users
,公司和组织内部的用户以及提供内容的用户最终用户。
那么谁将使用该表格?确定该基础以及您想要做什么可以在管理面板和开发视图中完成。