【发布时间】:2018-04-20 11:24:37
【问题描述】:
我正在用 Django 为我的大学编写一些任务。在我的更新和删除视图中,我想确保只有对象的所有者才能更新/删除它。现在每个人都可以做到。
以下是观点:
class UpdateCar(SuccessMessageMixin, UpdateView):
model = Car
form_class = AddNewCarForm
template_name = 'c2crental/car/update_car.html'
success_url = reverse_lazy('c2crental:list_user_cars')
success_message = _("Car has been updated.")
def get_queryset(self):
owner = self.request.user
return self.model.objects.filter(owner=owner)
class DeleteCar(DeleteView):
model = Car
success_url = reverse_lazy('c2crental:list_user_cars')
template_name = 'c2crental/car/delete_confirm_car.html'
success_message = _("Car has been deleted.")
def delete(self, request, *args, **kwargs):
messages.success(self.request, self.success_message)
return super(DeleteCar, self).delete(request, *args, **kwargs)
def get_queryset(self):
owner = self.request.user
return self.model.objects.filter(owner=owner)
我找到了一些带有查询集的解决方案,如上所示。他们不会让其他用户更新/删除对象并引发 Http404 错误,这很好,但我想使用 Django 消息框架在页面上打印错误消息并且不重定向到 Http404 页面。我该怎么做?
【问题讨论】:
标签: python django django-views