我有一个django项目,在这个项目中我有一个django表单.py其中包含字段调用类别,该类别选择作为数据库查询结果生成的框输入元素。 如果我从数据库的“选择”下拉列表中选择一个选项,我会不断得到错误:
**strong text**Select a valid choice. That choice is not one of the available choices
代码如下:
你知道吗表单.py你知道吗
from django import forms
#from django.contrib.auth.models import User
from signer.models import CreateSingleSigner
class CreateSingleSignerForm(forms.ModelForm):
category = forms.ModelChoiceField(
required = True,
help_text = 'category',
queryset=CreateSingleSigner.objects.all().values_list(
'category', flat=True
).distinct()
)
我的观点。你知道吗
from django.shortcuts import render
from django.http import HttpResponse, HttpResponseRedirect
from signer.models import CreateSingleSigner
from signer.forms import CreateSingleSignerForm
from django.template import RequestContext
def singlesigner(request):
context = {}
if request.method == 'POST':
createsinglesigner_form = CreateSingleSignerForm(data=request.POST)
if createsinglesigner_form.is_valid():
createsinglesigner.category = request.POST['category']
createsinglesigner_form.save()
else:
print createsinglesigner_form.errors
else:
# context['createsinglesigner'] = CreateSingleSigner()
createsinglesigner_form =CreateSingleSignerForm()
return render(request, "signer/singlesigner.html", {"createsinglesigner_form":createsinglesigner_form}, RequestContext(request))
我的型号.py你知道吗
from django.db import models
class CreateSingleSigner(models.Model):
category = models.CharField(max_length = 32)
有人能告诉我哪里出了问题吗?你知道吗
请尝试以下方法之一解决问题:
尝试在
CreateSingleSigner
模型中定义unicode的转换:解释:
ModelChoiceField
将使用指定字段的__unicode__
表示来显示和验证字段。你知道吗尝试在窗体的
__init__
方法中设置选项解释:用于
ModelChoiceField
的queryset参数不能是values_list
,因为它将保存关系,所以django必须使用完整的模型对象,而不是模型对象的特定值。相关问题 更多 >
编程相关推荐