我有一个带有单选按钮和文本字段的表单。当我提交表单时, bool 字段不会在记录中创建。 bool 字段应该通过单选按钮更新。这可能是什么问题?
这是我的 forms.py 文件的相关部分:
CHOICES = (
(1,'yes'),
(0,'no')
)
class ServiceForm(forms.ModelForm):
one_time_service = forms.ChoiceField(required = True, choices = CHOICES, widget=forms.RadioSelect())
class Meta:
model = Service
fields = ('one_time_service')
这是我的 models.py one_time_service 字段
one_time_service = models.BooleanField(default=False)
这是我的views.py:
def create(request):
if request.POST:
form= ServiceForm(request.POST)
if form.is_valid():
service_obj = form.save(commit=False)
service_obj.user_id = request.user.id
service_obj.save()
return render_to_response('services/service_created.html',
{'service': Service.objects.get(id=service_obj.id)})
else:
form = ServiceForm()
args= {}
args.update(csrf(request))
args['form'] = form
return render_to_response('services/create_service.html', args )
编辑:这是我的 create_service.html
<form action="/services/create" method="post" enctype="multipart/form-data">{% csrf_token %}
<ul>
{{form.as_p}}
</ul>
<input type="submit" name="submit" value="Create Service">
</form>
最佳答案
我不知道这是否是问题所在,但是行:
fields = ('one_time_service')
错了。这不是单个元素元组,而是一个带有括号的字符串。添加逗号使其成为元组:
fields = ('one_time_service',)
编辑:此外,form.save() 不会更新任何数据库记录——它会创建一个新记录!那可能是你的问题。
关于python - bool 字段不以 Django 形式保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26474827/