選択フィールドの空ラベルを設定すると問題が発生します。私はthisのような答えを見ましたが、これはちょうどフォームについて話しています。Django空のラベルの選択フィールド - クエリーセットなし
私は次のモデルがあるとします。
class MyColorModel(models.Model):
BLUE = 'blue'
RED = 'red'
GREEN = 'green'
COLOR_CHOICES = (
(BLUE, 'Blue'),
(RED, 'Red'),
(GREEN, 'Green'))
my_color = models.CharField(max_length=5, choices=COLOR_CHOICES, blank=True)
そして、このフォーム:デフォルトでは
class MyColorForm(forms.ModelForm):
class Meta:
model = MyColorModel
fields = ['mycolor']
を空白のラベルが-----に設定すると、これは、選択フィールドを表示します。 -
私はラベルを設定するために次のオプションを考え出しました。私モデルで
COLOR_CHOICES = (
('', '---Please select your color---'),
(BLUE, 'Blue'),
(RED, 'Red'),
(GREEN, 'Green'),
2)変更COLOR_CHOICESへ:私のモデルにで
1)変更COLOR_CHOICESを
COLOR_CHOICES = (
(None, '---Please select your color---'),
(BLUE, 'Blue'),
(RED, 'Red'),
(GREEN, 'Green'),
3)に次ののinitメソッドを追加します。私のモデルフォーム:
def __init__(*args, **kwargs):
super(MyColorForm, self).__init__(*args, **kwargs)
self.fields['my_color'].choices = [('', '---Please select your color---')] + MyColorModel.COLOR_CHOICES
オプション1は、それがうまく私のモデル(オプション2)に空のラベルを追加している私は失敗し始めた文ならば、それは2
オプションを作成するために私を導いたものだいくつかの副作用につながりましたか?私はそれを追加するか、フォームに追加する方がいいですか?フォームの中で空のラベルを設定するだけのコードがたくさんあるようです。
ありがとうございます!あなたは正しいです、私はブランクが必要でした=オプション1のために真です。私はオプション2に行っていましたが、間違いなく他の人の1人を使用します。 – Johan