Django admin如何将ManyToMany字段显示为复选框?

64jmpszr  于 2023-08-08  发布在  Go
关注(0)|答案(1)|浏览(146)

我有下面的模型

class Products(models.Model):

  name = models.CharField()
  description = models.CharField()

  permissions = models.ManyToManyField(CustomPermissions)

class CustomPermissions(models.Model):
  code_name = models.CharField()
  description = models.CharField()
  price = models.CharField()

字符串
admin.py

class ProductAdmin(admin.ModelAdmin):
   
  list_display = ["can_edit_product", "can_edit_price"]


现在这些领域显示为布尔领域,而不是我想显示他们作为复选框

rdlzhqv9

rdlzhqv91#

如果您已经得到了“can_edit_product”的结果,我假设它已经是模型的一个方法,或者已经在其他地方处理了。如果是这样的话,我相信你可以通过向管理类添加一个方法来做到这一点,指示它使用管理映像来显示它,如下所示:

class ProductAdmin(admin.ModelAdmin):

   list_display = ["can_edit_product_permission", "can_edit_price_permission"]
   
   #decorator to use admin yes/unknown/no images
   @admin.display(
        boolean=True
        description = "Can edit product?")
   def can_edit_product_permission(self, obj):
        return obj.can_edit_product

字符串

相关问题