📜  django 从视图中更改布尔字段 - Python (1)

📅  最后修改于: 2023-12-03 14:40:46.916000             🧑  作者: Mango

Django 从视图中更改布尔字段

在 Django 中,我们可以使用视图来更改模型字段的值。如果您需要更改一个布尔字段,在视图中进行更改也非常简单。

步骤

下面是更改布尔字段的基本步骤:

  1. 首先,您需要导入相关的模型和视图。例如:
from myapp.models import MyModel
from django.views.generic import UpdateView
  1. 然后,您需要创建一个继承 UpdateView 的视图,并设置该视图需要更新的模型、模板和表单。还要设置成功后要跳转的 URL。例如:
class MyUpdateView(UpdateView):
    model = MyModel
    template_name = "my_template.html"
    form_class = MyForm
    success_url = "/my_success_url/"
  1. 接下来,您需要在视图中更改布尔字段的值。要做到这一点,您可以重载视图的 form_valid() 方法,并使用该方法更新数据库中的相应字段。例如:
class MyUpdateView(UpdateView):
    # ...

    def form_valid(self, form):
        obj = form.save(commit=False)
        obj.boolean_field = not obj.boolean_field
        obj.save()
        return super().form_valid(form)
  1. 最后,您只需在模板中显示该字段即可。例如:
{{ form.boolean_field }}
示例代码

下面是如何在 Django 中更改布尔字段的完整示例代码:

from myapp.models import MyModel
from django.views.generic import UpdateView

class MyUpdateView(UpdateView):
    model = MyModel
    template_name = "my_template.html"
    form_class = MyForm
    success_url = "/my_success_url/"

    def form_valid(self, form):
        obj = form.save(commit=False)
        obj.boolean_field = not obj.boolean_field
        obj.save()
        return super().form_valid(form)
<!-- my_template.html -->
<form method="post">
    {% csrf_token %}
    {{ form.boolean_field }}
    <button type="submit">Save</button>
</form>
结论

在 Django 中更改布尔字段非常简单。通过创建一个继承 UpdateView 的视图,并使用 form_valid() 方法更新数据库中的相应字段,您可以轻松更改任何布尔字段的值。