在django管理员显示中获取HTML到换行符

时间:2013-08-07 18:42:41

标签: python html django format

我有这个作为我的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

views.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格式返回它。或者更确切地说,我想要它在图像中的方式

1 个答案:

答案 0 :(得分: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

有关详细信息,请参阅the docs