1
這必須在Django文檔的某處,但我似乎無法找到它。如何在Django中初始化ForeignKey ModelChoiceField?
說我有以下型號:
models.py
class MyModel(models.Model):
name = models.CharField(max_length=15)
class MyOtherModel(models.Model):
title = models.CharField(max_length=50)
my_model = models.ForeignKey(MyModel)
我創造,我改變選擇構件的背景顏色的表格:
forms.py
class MyOtherModelForm(ModelForm):
my_model=ModelChoiceField(queryset=MyModel.objects.all())
class Meta:
model = MyOtherModel
def __init__(self, *args, **kwargs):
super(MyOtherModelForm, self).__init__(*args, **kwargs)
self.fields['my_model'].widget = Select(attrs={'style':'background_color:#F5F8EC'})
一切運行正常,直到背景顏色代碼添加。只要我添加該行,就會出現一個有色但未填充的選擇小部件。我認爲這是因爲一旦我指定了部件行爲的某個方面,Django正在尋找所有需要指定的部分。
那麼如何告訴它使用MyModel中的值來填充Select小部件?
感謝您的領導。如果我理解正確,這表明我需要在窗體中顯式創建一個ModelChoiceField。我編輯我的代碼(和這個問題)來做到這一點,但選擇小部件仍然是空的。 – Sinidex 2011-04-24 01:31:12
我的想法是,不是重寫__init__方法,而是使用小部件= {}將所需的樣式添加到您的選擇中。我在想,這可能會解決您的問題與空選擇部件。 – solartic 2011-04-24 01:40:37
看了一下這個文檔,並試圖在Meta下聲明widget的顏色。當我這樣做時,我會得到一個無色的,填充的下拉列表。如果我將顏色規範留在上述問題中,我會看到一個彩色的,無人填充的下拉列表。 – Sinidex 2011-04-24 01:42:10