python - bool 字段不以 Django 形式保存

标签 python django

我有一个带有单选按钮和文本字段的表单。当我提交表单时, 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/

相关文章:

python - 如何在 Django 模板中从 Matplotlib 输出图形?

python - Django 的时区

django - Google App Engine 对 Django 的优缺点?

css - CSS 中的相对 URL 真的相对于文件本身吗?

python - 正则表达式 - 提取列表中以大写字母开头的子字符串,并带有法语特殊符号

python - 通过Key检索GAME数据

python - 使用OpenCV人脸检测时出错

python - 从 Matlab 到 Python 的一维随机游走

python - 如何离线安装 Flask?

python - AttributeError at/'str' 对象没有属性 '_mptt_meta'