Python 选择一个有效的选项。该选择不是可用的选择之一。(当我尝试在数据库中保存下拉列表中选定的数据时)

Python 选择一个有效的选项。该选择不是可用的选择之一。(当我尝试在数据库中保存下拉列表中选定的数据时),python,django,django-models,django-forms,django-views,Python,Django,Django Models,Django Forms,Django Views,我已经看到了所有关于Stackoverflow的问题。但我仍然不可能解决这个错误。我想要一个下拉列表数据出现在我的网站上。我从另一个模型得到的数据。所以,在这之前,我一直都很好。现在,当我尝试在数据库中保存此数据时,会出现此错误 Select a valid choice. That choice is not one of the available choices. 我的模型是这样的 apn = models.CharField(null=True, blank=False, max_l

我已经看到了所有关于Stackoverflow的问题。但我仍然不可能解决这个错误。我想要一个下拉列表数据出现在我的网站上。我从另一个模型得到的数据。所以,在这之前,我一直都很好。现在,当我尝试在数据库中保存此数据时,会出现此错误

Select a valid choice. That choice is not one of the available choices.
我的模型是这样的

 apn = models.CharField(null=True, blank=False, max_length=255)
我的form.py文件如下

class labelModelForm(forms.ModelForm):
    class Meta:
        model = Labels_tool
      apn = forms.ModelChoiceField(queryset=Field.objects.values_list('sql_name', flat=True), empty_label="(Choose field)") 
而view.py文件是:

 def ImportLabelView(self):
        self.form = labelModelForm(self.request.POST)
        # self.form = self.layer.form(self.request.POST)
        if self.save_form_if_appropriate('label'):
            return self.redirect('mapport.maps.layers.importlabel', self.map.id, self.layer.id)
        return self.render('mapport/maps/layers/Labels_detail.html')
页面上出现的下拉列表是好的。问题是当我试图将它保存到数据库中时


您不应该使用值列表。您应该使用普通查询集,然后使用
to_field_name
,如下所示:

然后,当您要保存内容时,只需提取相关信息保存在
apn
中,尽管实际上
apn
应该是
字段上的外键

我也会考虑看这个问题,看看它是否对你有帮助:


我怀疑您在数据库中做了一些不应该做的事情。

您能显示整个视图,而不仅仅是其中的一部分吗?@FazilZaid它的模板“Labels\u detail.html”的完整视图。我只是用这个,我不明白。你能修改一下我的代码吗?to_field_name是我的数据库字段吗?@ephemeral我添加了更多我在表单中做了更改,但得到的是一个空文本框,而不是下拉框。@ephemeral是
sql_name
字段中的一个模型字段
?是的。我正在从Field.sqlname获取下拉数据。
apn = forms.ModelChoiceField(queryset=Field.objects.all(), empty_label="(Choose field)", to_field_name="sql_name")