Проверьте, соответствует ли пользователь, делающий запрос, подключенному пользователю, внутри "form_valid" django
В настоящее время я пытаюсь улучшить свою форму, я хотел бы проверить, соответствует ли подключенный пользователь пользователю, который публикует данные
возможно ли добавить условие внутри form_valid, чтобы проверить, соответствует ли пользователь из модели пользователю из запроса, прежде чем публиковать форму
Модель:
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)
также если я не являюсь штатным пользователем, я не могу иметь доступ к входу для выбора пользователей, он назначается автоматически
<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-запрос, чтобы проверить, соответствует ли пользователь, делающий запрос, пользователю, зарегистрированному для выполнения задания.
на данный момент нет решения
Вам нужно добавить внутри form_valid
name= Task.objects.get(pk=self.object.id)
После этого можно задать условие
if name.user != self.request.user:...
Теперь мы можем проверить, что пользователь, разместивший форму, является ее владельцем