Django CreateView字段标签

2024-05-16 14:07:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做一个有一章的项目,每章都有标题、内容和顺序。我希望将字段“order”保持原样,但将该字段作为其他内容显示在CreateView中,如“章节号”。我找到的最好的信息建议更新Meta类中的“labels”属性,但这对我不起作用

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

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

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

我也尝试过在Meta之外使用标签的属性,但也不起作用。我应该改为使用模型表单,还是有正确的方法


Tags: 项目信息标题内容labels属性顺序order
2条回答

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

in 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'),
        }  

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

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

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

相关问题 更多 >