python - Django 管理更改列表页面中未选择新行 (\n)

标签 python django django-admin

我在 list_display 中添加了一个小函数来显示多对多字段,我正在尝试显示由换行符分隔的 m2m 对象。 但是换行符不起作用

我的 django 管理员:

class ArticleAdmin(admin.ModelAdmin):
     list_filter = ["category",]
     list_display = ('category','article_type', 'get_domains')
     filter_horizontal = ("domain",)

     def get_domains(self, obj):
        x ="\n".join([str(s.name) for s in obj.domain.all()])
        print x  # printing fine
        return x

     get_domains.short_description = 'Domains'   

打印语句很好:

   0 errors found
   Django version 1.4.5, using settings 'settings'
   Development server is running at http://127.0.0.1:8000/
   Quit the server with CONTROL-C.
   mykitchenremodelinglosangeles.com:8000
   kitchenremodelerchicagoil.com:8000
   localhost:8000

我附上了管理屏幕输出:

enter image description here

你能推荐这个吗?

最佳答案

HTML 中的浏览器会忽略新行。如果你想在不同的行中显示它们,我认为你应该 join他们与<br>而不是 \n并使用 allow_tags .

class ArticleAdmin(admin.ModelAdmin):
    list_filter = ["category",]
    list_display = ('category','article_type', 'get_domains')
    filter_horizontal = ("domain",)

    def get_domains(self, obj):
        x ="<br>".join([str(s.name) for s in obj.domain.all()])
        print x  # printing fine
        return x

    get_domains.allow_tags = True

希望这对您有所帮助!

关于python - Django 管理更改列表页面中未选择新行 (\n),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17278834/

相关文章:

View 中的 Django 模板标签

python - 自定义 Django 模型字段中的 "object has no attribute"

python - 收集静态后,使用 python manage.py runserver 缺少 Django admin CSS

python - Django - 如何预填充管理表单字段

django - 摘要、基本和承载身份验证

django - 在 django admin 中添加新项目时,列 "name"中的空值违反了非空约束

python - 如何在 Python 中使用 lxml 从网页查找所有(完整)子链接

python - 关于 Ubuntu 18.04 LTS 和 python 的问题

python - 在for循环python中捕获错误

python - 在 Python 中将数字提高到零的幂时出现奇怪的行为