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