1
我试图从我的postgres数据库的视图中创建一个多选项字段,但网页显示不正确。具体来说,虽然它提供了正确的选择数,但它并没有通过“check_name”字段命名,而是将每个选择命名为“Check object”。这里是我的代码:Django ModelMultipleChoiceField不显示正确的选择名称
models.py
class Check(models.Model):
pkey = models.AutoField(primary_key=True)
cif = models.CharField(max_length=255)
check_name = models.CharField(max_length=255)
description = models.TextField()
class Meta:
managed = False
db_table = 'precheck_check'
forms.py
class ProcessFileForm(forms.Form):
checks_to_run = forms.ModelMultipleChoiceField(
queryset = Check.objects.all(),
to_field_name = "check_name",
widget = forms.CheckboxSelectMultiple,
)
views.py
def successful_upload(request):
if request.method == 'POST':
form = ProcessFileForm(request.POST, user=request.user)
if form.is_valid():
return render(request, 'precheck/checks_successful.html')
else:
form = ProcessFileForm()
return render(request, 'precheck/select_checks.html',{'form':form})
值得注意的是,我正在从postgres数据库中名为'precheck_check'的视图中提取数据。它似乎正确地看到了这个视图,因为它给了我正确的选择数量。
这为我工作,所以我接受了雁,但应该不是'to_field_name =“check_name”'完成了同样的事情? – chaserchap
否。作为[文档中的示例](https://docs.djangoproject.com/en/1.11/ref/forms/fields/#django.forms.ModelChoiceField.to_field_name)显示,“to_field_name”控制值的选项(你没有看到),而不是你看到的标签。 – Alasdair