Pull to refresh

Comments 13

Это же наша модель, можно ей сразу напрямую задать такую же форму
Если мы ограничим поля в форме оригинальной модели, тогда мы не сможем предоставить полный доступ другим пользователям. Затем мы и создаём прокси-модель, чтобы была возможность дать доступ к оригинальной модели с формой, где все поля разрешены.
А, да, если разрулить это через permissions, то имеет смысл. Еще можно подменять get_form, меньше кода если много моделей
Посмотрел, что за get_form такой, увы он не документирован и придётся переопределять метод на 30 строк, я не совсем комфортно себя в таких случах чувствую.
А для просмотра/редактирования только своих записей этот подход годится? Я реализовывал через создание ещё одной админки, в которой перезначался queryset и т. п.
Не знаю, пробуйте.
Например, можно создать прокси-модель и далее в её админ-классе изменить метод queryset
Не очень понял как определить кому давать права, а кому нет на эту прокси-модель
В user permission же. То есть, если я правильно понял, прокси-модель появится там наряду с обычными моделями.
Я сам не пробовал, но думаю, что должно получиться.
Вы поймите для чего эта прокси-модель нужна, тогда и дайте кому-нить права, а пока непонятно, лучше никому права не давать.
не понял как модель ArticleEditProxy привязана к модели Article. может надо применить наследование?
У класса admin.ModelAdmin помимо readonly_fields есть еще метод
ModelAdmin.get_readonly_fields(self, request, obj=None)

По умолчанию он возвращает self.readonly_fields, но его можно переопределить.

Это даст даже большую гибкость — например если для статьи добавить поле author, то его можно сравнивать с request.user. Свою статью можно редактировать полностью, а для чужих только теги.

Если Obj is None — значит пользователь создает новый объект
> Для любой модели любого приложения вы можете разрешить пользователю три действия: добавлять новые объекты, редактировать и удалять существующие объекты.

Здесь, скорее, нужно говорить о том, что три права создаются по умолчанию. В Meta::permissions модели можно задать любой набор прав и на одно из них завязать ограниченное редактирование.
Sign up to leave a comment.

Articles