我把它作为我的 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 格式返回它。或者更确切地说,我想要它在图像中的方式
最佳答案
您需要设置该字段以允许 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获取更多信息。
关于python - 让 HTML 在 django 管理显示中换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18111297/