我有一個網站,用戶可以在其中創建和編輯自己的列表。Django:每個用戶的UpdateView限制
我正在使用通用視圖CreateView來允許用戶創建列表。
我想使用通用視圖UpdateView來允許他們編輯列表,但在這種情況下login_required=True
是不夠的,因爲只有列表創建者可以編輯他/她的列表。
2個問題:
1)有,我可以在URLconf中指定要添加此限制任何參數?
2)我可以強加這些通用視圖應該只適用於POST而不是GET?
感謝
我有一個網站,用戶可以在其中創建和編輯自己的列表。Django:每個用戶的UpdateView限制
我正在使用通用視圖CreateView來允許用戶創建列表。
我想使用通用視圖UpdateView來允許他們編輯列表,但在這種情況下login_required=True
是不夠的,因爲只有列表創建者可以編輯他/她的列表。
2個問題:
1)有,我可以在URLconf中指定要添加此限制任何參數?
2)我可以強加這些通用視圖應該只適用於POST而不是GET?
感謝
你可以在覆蓋get_queryset
UpdateView
:
def get_queryset(self):
base_qs = super(YourListUpdateView, self).get_queryset()
return base_qs.filter(user=self.request.user)
1)你可以寫的裝飾,並使用它一樣login_required
裝飾,即:
def user_permitted(function):
def decorator(function):
def _wrapped_view(request, *args, **kwargs):
# get obj from request
if obj.user != request.user:
return HttpResponseRedirect(reverse('forbidden'))
return function(request, *args, **kwargs)
return _wrapped_view
return decorator(function)