我有一個簡單的表單,它提供了django模型中所有可用條目的下拉菜單。動態更新Django表單
forms.py
class SampleNameLookupForm(forms.Form):
#Make a list of sample name options for dropdown menu.
# Turn that into a list of tuples for ChoiceField.
samples = Sample.objects.all()
sample_list = [i.sample_name for i in samples]
sample_tuple = [(i, i) for i in sample_list]
Sample_Name = chosenforms.ChosenChoiceField(sample_tuple)
models.py
class Sample(models.Model):
sample_ID = models.CharField(max_length=20)
sample_name = models.CharField(max_length=30)
def __unicode__(self):
return self.sample_ID
class Meta:
ordering = ['id']
當我添加一個新的樣本模型,我可以看到訪問mysql中的模型時,或在新增加python manage.py shell,但它不會出現在所選字段的下拉菜單中。
當我重新啓動服務器時,表單會在下拉菜單中反映新樣本。如何在不重新啓動服務器的情況下更新下拉菜單?
我應該提到我只是在本地託管,目前還沒有投入生產。
您應該將該代碼放在窗體的'__init__'方法中,而不是直接放在類體中。 –
你介意提供一個例子嗎?我嘗試這個時似乎遇到了一些錯誤。 – Malonge