こんにちは、私は働いているビューがあります。私はこれが最良かそれとも良い方法かを知りたがっています。私は写真のオブジェクトを削除する削除ビューを持っているが、ログインしているユーザーがオブジェクトに関連付けられているオンの場合にのみ、あなたはモデルや、そのような、それをリクエストしてくださいなどの詳細情報が必要な場合はDjango - パーミッションとDeleteViewはこれを行う良い方法ですか?
は、ここに私のviews.py
class PhotoDelete(DeleteView):
model = Photo
template_name = 'otologue/photo_delete.html'
success_url = reverse_lazy('otologue:photos')
def get(self, request, *args, **kwargs):
object_instance = self.get_object() # Get the object
object_user = object_instance.photoextended.user # Get the user who owns the object
user = get_object_or_404(User, username=self.request.user) # Get the user in the view
if object_user != user: # See if the object_user is the same as the user
return HttpResponseForbidden('Permission Error')
else:
return render(request, self.template_name, {'object': object_instance})
@method_decorator(login_required)
def dispatch(self, *args, **kwargs):
return super().dispatch(*args, **kwargs)
です。
だ 'DeleteView'私は' LoginRequiredMixin'を使用して上の問題があります。他のビューでは動作していますが、DeleteViewの場合は、とにかく 'dispatch'を実行します(POSTとGETで)。 –