我目前正在尝试改进我的表单,我想在重写之前查看连接的用户是否与拥有数据的用户相对应
模型:
class Task(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True)
title = models.CharField(max_length=200, null=True, blank=True)
该视图:
class TaskUpdate(LoginRequiredMixin, UpdateView):
model = Task
template_name = "tasks/task_form.html"
form_class = DateInputForm
我已经试过了:
def form_valid(self, form):
if self.request.user.is_staff and self.object.user != self.request.user:
return super().form_valid(form)
if self.object.user != self.request.user:
form.add_error(None, "You can't do that")
return super().form_invalid(form)
另外,如果我不是staff用户,我就不能访问输入来选择用户,所以它是自动分配的。
<form action="" method="post">
<div style="flex-direction: column">
{% csrf_token %}
<div style="margin-bottom: 10px">
{% if admin %}
<label for="user">User name : </label>
{{ form.user }}
{% endif %}
</div>
我还想过做一个sql查询,看看正在做查询的用户是否与任务的注册用户相对应。
1条答案
按热度按时间qxsslcnc1#
您需要在form_valid内添加
1.第一个月
在您可以设置条件之后
if name.user != self.request.user:...
现在,我们可以验证发布表单的用户是否为所有者