0
我有一個典型的django視圖設置,用於添加新的或編輯當前的'book'模型(通過表單)。這是性質:permission_required_or_403修飾者在'添加或編輯'?
def bookedit(request, bookid=None):
if bookid:
book = get_object_or_404(Book, pk=bookid)
else:
book = Book()
if request.method == 'POST':
<form handling code.....>
我現在想要把一個裝飾器,以限制編輯創建該書的用戶。使用Django,守護我有以下的裝飾包裹上面的代碼:
@permission_required_or_403('myapp.edit_book', (Book, 'id', 'bookid'))
這工作好於編輯的書籍已經制作的情景,即如果用戶不是創造者403將被拋出。但是,在添加一本新書時,bookid是空的並且會破壞裝飾器代碼。有沒有一種很好的方法來處理這種情況(不分離編輯和添加功能)?
感謝, 格里
對不起,但那是不可能的。 django-guardian不是爲該請求而構建的。無論如何,我推薦自己創建所有CRUD視圖(創建,讀取,更新,刪除)。 – Thomas
嗨。謝謝。我剛剛分離出我的添加和編輯視圖,事情正常。我想我最好先檢查一下,如果可能的話。 – GerryDevine