3

我有这个作为我的 django 显示器

执行此操作的代码是:

class PurchaseOrder(models.Model):
    product = models.ManyToManyField('Product', null =True)

    def get_products(self):
        return "\n".join([p.products for p in self.product.all()])

class Product(models.Model):
    products = models.CharField(max_length=256, null =True)

    def __unicode__(self):
         return self.products

视图.py:

class PurchaseOrderAdmin(admin.ModelAdmin):
   fields = ['product']
   list_display = ('get_products')

所以我试图这样做:

from django.utils.html import format_html

 def get_products(self):
    return format_html(" <p> </p>").join([p.products for p in self.product.all()])

但是,它仍然没有以 HTML 格式返回它。或者更确切地说,我希望它在图像中的方式

4

1 回答 1

2

您需要设置该字段以允许 HTML 的标签显示在管理列表显示中:

class PurchaseOrder(models.Model):
    product = models.ManyToManyField('Product', null =True)

    def get_products(self):
        return "<br />".join([p.products for p in self.product.all()])
    get_products.allow_tags = True

有关更多信息,请参阅文档

于 2013-08-07T18:51:45.747 回答