Django CreateView字段标签

时间:2016-11-07 22:36:47

标签: django django-generic-views

我正在开发一个包含章节的项目,每个章节都有标题,内容和顺序。我想保持按顺序命名的字段'order',但是将字段显示在CreateView中作为其他内容,例如'Chapter number'。我发现的最好的信息建议更新Meta类中的“标签”属性,但这不适合我。

这就是我现在使用的,但这不起作用:

class ChapterCreate(CreateView):
    model = models.Chapter
    fields = [
        'title',
        'content',
        'order',
    ]

    class Meta:
        labels = {
            'order': _('Chapter number'),
        }

我也尝试过使用Meta之外的'label属性,但这也不起作用。我应该使用ModelForm,还是有正确的方法来做到这一点?

2 个答案:

答案 0 :(得分:5)

在这种情况下,最简单的解决方案是为模型字段设置verbose_name

class Chapter(models.Model):
    order = models.IntegerField(verbose_name= _('Chapter number'))

注意我在本例中使用了IntegerField,请使用所需的任何类型。

答案 1 :(得分:0)

即使这是一个古老的话题,我认为现在使用Django 3.1的一种方法是:

在views.py

class ChapterCreate(CreateView):
    model = models.Chapter
    form_class = ChapterForm

并在forms.py中定义ChapterForm

class ChapterForm(ModelForm):
    class Meta:    
        model = models.Chapter
        fields = ('title', 'content','order') 
        labels = {
            'order': _('Chapter number'),
        }