Modele procuration document administratif


J`ai un modèle de proxy étendant le modèle Flatpage, j`ai désinscrit le ModelAdmin pour elle et enregistré ma coutume. J`ai assigné`change_myflatpage`, et`edit_myflatpage` (et même`change_flatepage`/`add_flatpage`) à l`utilisateur. Howeverr l`administrateur Django n`a pas d`options pour mon modèle flatpage personnalisé; Si je fais de l`utilisateur un super utilisateur les options de modification apparaissent. Je pense aussi que les modèles proxy devraient avoir leurs propres autorisations. Le problème actuel semble se situer dans la façon dont ContentTypeManager détermine le app_label d`un modèle: le comportement par défaut serait toujours “cassé”-ModelBase et ContentManager serait toujours donner des histoires différentes concernant app_label êtes-vous sûr de ce que Malcolm? Les modèles de proxy peuvent être très utiles pour limiter les autorisations à un sous-ensemble d`objets. Les modèles de proxy doivent également proxy les autorisations du modèle qu`ils sont occultant. Ainsi, toute vérification app_label doit d`abord vérifier si l`instance est un proxy et regarder dans le app_label du parent à la place. Les modèles proxy ont été introduits dans Django 1,1. La documentation officielle décrit leur utilisation, en les comparant et en les contrastant avec l`héritage de modèle. Un fait que la documentation officielle n`indique pas explicitement, c`est que Django ne vous laissera pas inscrire plusieurs ModelAdmins au même modèle. C`est là que les modèles de procuration peuvent venir à la rescousse. ModelBase sera-proxy ou non-signaler le app_label soit explicitement spécifié, soit du nom du module parent. https://code.djangoproject.com/Browser/Django/Trunk/Django/DB/Models/base.py#L50 il n`introduit pas de problèmes de rétrocompatibilité puisque l`administrateur s`est appuyé sur les opte du proxy pour les vérifications has_perm.

En d`autres termes, ModelAdmin enregistré avec un modèle de proxy ne pouvait pas être accessible du tout si vous n`étiez pas un super-utilisateur ainsi approche comme celui-ci ne serait pas réellement travailler. ImportantLa fonction isResolvable interroge un serveur DNS (Domain Name System). Les références aux objets, propriétés ou méthodes du modèle objet entraînent l`échec du fichier de configuration automatique du proxy en mode silencieux. Par exemple, la fenêtre références. Open (…), l`alerte (…) et le mot de passe (…) provoquent l`échec du fichier de configuration automatique du proxy. Les modèles de proxy doivent également proxy les autorisations du modèle qu`ils sont un exemple trivial, mais avec les options de personnalisation disponibles dans l`admin de Django, vous pouvez présenter une interface très différente à vos utilisateurs.

Saznajte