下拉菜单的初始值

时间:2018-09-11 08:48:07

标签: django django-forms

我想在下拉菜单“选择行业”中设置一个初始值。一旦用户从下拉列表中选择了一个有效值并保存了表单,理想情况下,如果用户要返回表单,则该选项在列表中将不再可见。如果没有办法这样做,那很好。

Models.py

class UserProfile(models.Model):                                     
    user = models.OneToOneField(User, on_delete=models.CASCADE)                                        
    phone = models.CharField(blank=True, null=True, max_length=100)             
    industry = models.IntegerField(default=0)

Forms.py

class EditUserProfileForm (forms.ModelForm):       

    industry = forms.ChoiceField()

    def __init__(self, *args, **kwargs):
        super(EditUserProfileForm, self).__init__(*args, **kwargs)
        self.fields['industry'].choices = [(t.industry, t.industryname) for t in Industry.objects.all()]

    class Meta:
        model = UserProfile
        fields = (
            'phone', 
            'industry', 
           )      

是否可以在不创建行业名称为“ Select and Industry”的Industry对象实例的情况下设置默认值?

谢谢!

1 个答案:

答案 0 :(得分:0)

如果industry是代表单独表中条目的整数,则它是外键。使其成为实际的ForeignKey字段;然后Django会在您的表单中自动为该相关模型输出一个选择框。