gpt4 book ai didi

python - 使用 URL 将模型设置为 true 或 false

转载 作者:行者123 更新时间:2023-12-01 08:18:04 25 4
gpt4 key购买 nike

我有一个待办事项应用程序,我希望有一个链接,用户可以单击该链接并将“待办事项”设置为完整,而无需将其从我的数据库中删除。

我使用 CBV 但不知道怎么做:

我试过了

views.py:

class TodoDeleteView(LoginRequiredMixin, DeleteView):
model = Todo
success_url = '/'
template_name = 'dashboard/dashboard_confirm_delete.html'

def completeTodo(request, todo_id):
todo = Todo.objects.get(pk=todo_id)
todo.complete = True
todo.save()

但它从我的数据库中删除了它,并且没有将其设置为 true。

我的models.py

class Todo(models.Model):
author = models.ForeignKey(User, on_delete=models.CASCADE,verbose_name="Nom de l'utilisateur")
text = models.CharField(max_length=150, verbose_name="Nom de la Todo")
complete = models.BooleanField(default=False)

最佳答案

您定义一个DeleteView,并删除该对象,只是delete控制流的一部分。为了更改行为,我们可以重写 delete 函数,例如:

class TodoDeleteView(LoginRequiredMixin, DeleteView):
model = Todo
<b>pk_url_kwarg = 'todo_id'</b>
success_url = '/'
template_name = 'dashboard/dashboard_confirm_delete.html'

def <b>delete</b>(self, request, *args, **kwargs):
self.object = self.get_object()
success_url = self.get_success_url()
<b>self.object.complete = True</b>
self.object.save()
return HttpResponseRedirect(success_url)

需要使用pk_url_kwarg来获取主键,以便使用get_object()过滤和检索正确的对象。

我们可能想要使用DeleteView的原因是因为人们可以在该端点上发出DELETE请求。

关于python - 使用 URL 将模型设置为 true 或 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54865637/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com