簡體   English   中英

如何使 Django ModelForm 菜單項默認選中?

[英]How do I make a Django ModelForm menu item selected by default?

我正在開發 Django 應用程序。 我的模型之一“用戶”包含一個“性別”字段,定義如下:

GENDER_CHOICES = (
        ('M', 'Male'),
        ('F', 'Female'),
    )
gender = models.CharField(max_length=1, choices=GENDER_CHOICES, null=True)

我正在使用 ModelForm 生成“新用戶”HTML 表單。 我的 Google-fu 似乎讓我失望了——我怎樣才能讓這個 HTML 表單在下拉框中默認選中“男性”項目? (即,為此項目selected="selected" 。)

如果您需要選擇默認值的空白表單,則使用字段名稱作為鍵將“初始”字典傳遞給 model 表單的構造函數:

form = MyModelForm (initial={'gender':'M'})

-或者-

您可以使用 Forms API 的聲明性質覆蓋 ModelForm 的某些屬性。 但是,對於這個用例來說,這可能有點麻煩,我提到它只是為了向您展示您可以做到。 將來您可能會發現此功能的其他用途。

class MyModelForm (forms.ModelForm):
    gender = forms.ChoiceField (choices=..., initial='M', ...)
    class Meta:
        model=MyModel

-或者-

If you want a ModelForm that is bound to a particular instance of your model, you can pass an 'instance' of your model which causes Django to pull the selected value from that model.

form = MyModelForm (instance=someinst)

肯定default會解決問題嗎?

例如

gender = models.CharField(max_length=1, choices=GENDER_CHOICES, default='M', null=True)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM