【问题标题】:Django CreateView field labelsDjango CreateView 字段标签
【发布时间】:2017-03-21 10:21:32
【问题描述】:

我正在处理一个包含章节的项目,每个章节都有标题、内容和顺序。我想保持字段“订单”的名称不变,但在 CreateView 中将该字段显示为其他内容,例如“章节编号”。我发现的最佳信息建议更新 Meta 类中的“标签”属性,但这对我不起作用。

这是我现在用的,不行:

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

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

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

【问题讨论】:

    标签: django django-generic-views


    【解决方案1】:

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

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

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

    【讨论】:

    • 太棒了,它做到了,而且很简单。非常感谢!
    • 很高兴能提供帮助
    【解决方案2】:

    即使它是一个古老的主题,我认为现在使用 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'),
            }  
    

    【讨论】:

      猜你喜欢
      • 2017-08-16
      • 2012-10-22
      • 2013-10-21
      • 2020-02-18
      • 1970-01-01
      • 1970-01-01
      • 2012-06-07
      • 2017-07-11
      • 2011-10-16
      相关资源
      最近更新 更多