Разрешение_required_or_403 оформитель на "Добавить или изменить"?
У меня есть типичная настройка представления django для добавления новой или редактирования текущей модели "книги" (через формы). Это имеет характер:
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-guardian, у меня есть следующий декоратор для переноса кода выше:
@permission_required_or_403('myapp.edit_book', (Book, 'id', 'bookid'))
Это работает нормально в сценарии редактирования Книг, уже созданных, то есть 403 будет брошено, если пользователь не является создателем. Однако при добавлении новой книги bookid становится пустым и вылетает код декоратора. Есть ли хороший способ справиться с этим сценарием (без разделения функций редактирования и добавления)?
Спасибо джерри
1 ответ
Извините, но это невозможно. Django-Guardian не собирается для этого запроса. В любом случае рекомендую создавать все CRUD-представления (создавать, читать, обновлять, удалять) самостоятельно.