Django Admin面板界面

时间:2017-09-21 16:22:26

标签: python django

要创建管理界面来编辑某些字段,这是最佳做法吗?自定义默认的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)

2 个答案:

答案 0 :(得分:1)

排除字段并将其设为只读(admin.py)。下面给出一个例子

class SendProductAdmin(admin.ModelAdmin):
    exclude=("item_name ",)
    readonly_fields=('item_name', )

admin.site.register(SendProductAdmin)

请注意,您可以根据需要排除任意数量的字段。

答案 1 :(得分:0)

管理面板的使用与您开发的视图之间存在差异,您应注意的区别在于管理面板适用于staff users,公司和组织内部的用户以及提供内容的用户最终用户。

那么谁将使用该表格?确定该基础以及您想要做什么可以在管理面板和开发视图中完成。