2016-01-21 80 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()) 
相关问题