Django表单如果只有一个选项,则自动选择第一个选项

时间:2018-02-28 15:59:23

标签: python django forms

在只有一个选项可用的情况下,是否有一种简单的方法可以在Django表单中选择下拉列表的第一个选项?

简单易用,我指的是一个不需要定义自己的小部件的解决方案,这对于我们所有(模型)表单的更改都是非常重复的。

更新,因为似乎最初的问题不明确:

如果有一个选项可用,我只想选择initital选项。如果选项是对另一个模型的外键引用,那么对我来说这样做的方式并不明显:

class Category(models.Model):
     name = CharField(...)

class Post(models.Model):
    category = ForeignKey(Category)

class PostForm(forms.ModelForm):
    class Meta:
        fields = '__all__'
    [...]

现在我希望category中的PostForm字段自动选择到第一个类别,如果数据库中只有一个实例,如果有两个或更多实例则为--------

2 个答案:

答案 0 :(得分:1)

我认为不需要任何解释,请看下面的代码

post_type_choices = (
    ('article', 'article'),
    ('tip', 'tip'),
    ('snippet', 'snippet'),
)


class Post(models.Model):
    post_type = models.CharField(
        max_length=10, choices=post_type_choices,default='article')

答案 1 :(得分:0)

如何使用它:

Your_Dropdown = forms.TypedChoiceField(choices=your choises, initial='FIRST_OPTION')

如文档中所示:Here