如何从我的表单中检索一个布尔值并在Django的视图中进行比较?

时间:2015-01-06 17:06:40

标签: python django

目前我在我的视图中检索这样的值:

is_service = request.POST.get('is_service', '')

然后我想检查这个值是否为假以及是否要做某事。目前我有

if is_service == 0 : 
    Do Something

我尝试过很多其他变体,例如if is_service == False等等。

在视图中进行此比较的正确语法是什么

编辑这是我的is_service定义:

class Service(models.Model):
    ...
    is_service = models.BooleanField(default=False)
    ...

1 个答案:

答案 0 :(得分:1)

您应该使用Django formmodelForm并为is_service字段指定布尔类型。 Django会将用户提供的字符串规范化为正确的python类型。

forms.py

class MyForm(forms.Form):
    is_service = forms.BooleanField()

views.py

def some_view(request):
    if request.method == 'POST':
        form = MyForm(request.POST)

        if form.is_valid():
            is_service = form.cleaned_data['is_service']

            if not is_service:
                # do something
    else:
        form = MyForm()

    return render(request, 'some_view.html', {'form': form})

some_view.html

<form action="/some_view/" method="post">
{% csrf_token %}
{{ form }}
<input type="submit" value="Submit" />
</form>