Django Admin中的表单字段描述


76

像下一个示例一样,如何在django admin中为表单字段添加提示?

Django管理员中的表单字段描述

(此处:URL内容描述在字段下以灰色显示)

Answers:


132

在models.py中定义字段时:

myfield = models.CharField(max_length=100, help_text="This is the grey text")

收藏链接:

https://docs.djangoproject.com/en/dev/ref/models/fields/#help-text

我发现自己一直在引用它(不仅是对于help_text,而且还涉及与模型字段有关的一切)!


2
我认为您的链接有误,因为我们在谈论models.FooField而不是forms.FooField。应该是docs.djangoproject.com/en/dev/ref/models/fields/#help-text
机械蜗牛

3
以及如何添加多行字段(例如description)呢?
pranavk 2012年

1
@pranavk这是html,因此您可以使用<br/>换行符
RickyA

23

除了邓肯的回答,如果你想显示一些额外的帮助文本,并希望有一些有用的标记过,你可以自定义显示各个形式字段集并添加描述字段。以您的示例为例,您想将“内容”字段细分为它自己的字段集块,并添加一些详细的帮助文本。您可以执行以下操作:

from mymodel.models import MyModel
from django.contrib import admin

"""
Custom Help Text
"""
CONTENT_HELP_TEXT = ' '.join(['<p>Here is some multi-line help',
                              'which is a long string so put',
                              'into a list which is then joined',
                              'with spaces. I can do fun things',
                              'like have <strong>bold</strong>',
                              'and some line breaks.<br/>'])
"""
Customize Admin
"""
class MyModelAdmin(admin.ModelAdmin):
    """
    Add your other customizations
    like actions, list_display, list filter, etc
    """
    fieldsets = [
        ('Content', {
            'fields':('content',),
            'description': '<div class="help">%s</div>' % CONTENT_HELP_TEXT,
        }),
    ]

admin.site.register(MyModel, MyModelAdmin)

有关更多信息,请参见Django文档(向下滚动至字段集)区域。


括号内的“内容”后面应该有一个逗号
thevasya 2013年

可接受的答案是表单的标准,但这是最佳答案,因为它与表单无关,并且依赖于模型管理员设置的字段集细分。谢谢!
radtek

无需用空格连接字符串列表-您只需使用反斜杠字符\即可在下一行继续该字符串,而无需插入换行符:docs.python.org/3.2/tutorial/introduction.html#strings
ccpizza

2
@ diegueus9:您对我的答案的编辑引入了一个语法错误:您删除了每行新单词之间的空格,使句子混乱。请修正或还原至原始版本。
tatlar

1
@ diegueus9:我回滚到答案的先前版本。在恢复之前,请仔细检查您对语法的建议更改。
tatlar

0

在forms.py文件中,

fields = ['URL',....]

help_texts = {"URL": "Example..."}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.