【问题标题】:default text for foreign key in form in djangodjango 表单中外键的默认文本
【发布时间】:2017-05-11 02:47:27
【问题描述】:

我知道这是一个简单的问题,但我对此有问题 我有一个显示颜色的表,我在 Post 表中使用它作为外键

class Post(models.Model):
    """docstring for Post"""

    user = models.ForeignKey(settings.AUTH_USER_MODEL, default=1 )
    slug = models.SlugField(unique=True)
    post_title = models.CharField(max_length=50, help_text="write about your product")
    color=models.ForeignKey(Color)
    phone=models.CharField(max_length=20)

现在当我想以Post 的形式在颜色字段中显示第一行时

现在我想显示选择颜色而不是 --------

【问题讨论】:

  • 您可以覆盖表单的 ChoiceField 中的选项

标签: python django forms foreign-keys


【解决方案1】:

默认情况下,ModelChoiceField 使用的小部件将在列表顶部有一个空选项。您可以使用 empty_label 属性更改此标签的文本(默认为“------”),或者您可以通过将 empty_label 设置为 None 来完全禁用空标签

Docs

例如:

field1 = forms.ModelChoiceField(queryset=..., empty_label="(Choose color)")

【讨论】:

    【解决方案2】:

    在您的模型表单中,您可以使用__init__() 来初始化您的表单。比如:

    from django import forms
    from .models import Post
    
    class PostForm(forms.ModelForm):
        class Meta:
            model = Post
            fields = ('post_title', 'color')  # fields to show in your form
    
        def __init__(self, *args, **kwargs):
            super(PostForm, self).__init__(*args, **kwargs)
            self.fields['color'].empty_label = "Choose color"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-14
      • 2016-07-16
      • 1970-01-01
      • 2021-04-03
      • 2011-06-14
      • 2018-03-02
      • 2018-09-26
      • 2022-11-02
      相关资源
      最近更新 更多