2016-01-21 108 views
0

我的問題是簡單的解釋,但我只能想哈克的方式來解決。我有一個800個項目的列表,我希望用戶能夠選擇。然後他們將東西輸入文本框並打開。然後我從那裏拿走它並處理它並吐出一個迴應。從模型數據填充表單字段不使用外鍵

我如何獲得我已經保存在Taxonomy的項目在我的形式下拉填充?

型號:

class Taxonomy(models.Model): 
    code = models.CharField(max_length=10, blank=False) 
    specialty = models.CharField(max_length=60, blank=False) 

    def __str__(self): #python 3.3. is __str__ 
     return self.specialty 

觀點:

def NPI(request): 
    form = NPIQueryForm(request.POST or None) 
    ...other stuff... 

forms.py:

class NPIQueryForm(forms.ModelForm): 
    class Meta: 
     model = Taxonomy 
     fields = ['specialty'] 

的哈克的方式,我認爲是剛剛創建的輸入字段和手工粘貼選項。但我希望他們能夠在管理員中輕鬆修改,所以我避免了這一點。此外,我考慮創建兩個模型,一個是另一個的外鍵,但這似乎是非常不必要的。我肯定錯過了什麼。

+0

什麼實際問題?在表單中顯示的選項過多? – stschindler

+0

我如何獲得我已經保存在'Taxonomy'在我的形式下拉列表填充項? –

+3

是ModelChoiceField你在找什麼? https://docs.djangoproject.com/es/1.9/ref/forms/fields/#modelchoicefield – stschindler

回答

1

Django的有ModelChoiceField從模型對象列表中選擇一個選項。

它可以像這樣使用:

class MyForm(forms.Form): 
    speciality = forms.ModelChoiceField(queryset=Speciality.objects.all()) 
相關問題