Django: La meilleure pratique pour implémenter CRUD en dehors de contrib.admin
-
22-07-2019 - |
Question
Je développe actuellement un projet de blog à l'aide du modèle Post, qui sera utilisé par plusieurs auteurs.
Je souhaite créer une interface administrateur / panneau de configuration permettant à chaque auteur de la publication de visualiser la liste de publications créée par celui-ci (afin qu'il ne voie pas la publication créée par les autres auteurs), de modifier et de supprimer plusieurs fois. eux.
Cas d'utilisation valide pour l'administrateur de Django? a déclaré que:
l'administrateur Django n'est pas adapté pour profils d'utilisateurs individuels, chaque utilisateur serait capable de voir, et éditer, tous d'autres profils d'utilisateurs. Ceci est adapté plus à un administrateur qui doit gérer tous les utilisateurs à la fois.
Cela signifie qu'un nouveau système CRUD doit être créé - en dehors de l'interface contrib.admin. La question est donc de savoir s'il existe une technique / un moyen de mettre en œuvre le CRUD en dehors du système contrib.admin. ou, de quoi ai-je besoin pour étudier / utiliser? comment puis-je bien le mettre en œuvre (l'effort minimum)?
Merci d'avance :)
La solution
C’est assez facile à faire en peaufinant l’administrateur de Django. Si c’est la seule raison qui a conduit à l’abandon de contrib.admin, vous pouvez consulter Google pour des articles récents sur la personnalisation de l’administrateur avant de jeter le bébé avec l’eau du bain.
J'ai trouvé quelques candidats probables:
- http://patrickbeeson.com / blog / 2008 / août / 11 / comment-créer-spécifique-admin-Django /
- http://www.djangosnippets.org/snippets/1054/
et en général: http: // www. ibm.com/developerworks/opensource/library/os-django-admin/index.html
(notez qu'il y avait une ancienne technique qui utilisait un hack local de threads. Ce n'est plus nécessaire, car il existe de meilleures façons de le faire. Une mention de cela est un signe certain que l'article est obsolète.)
Autres conseils
Vous voudrez regarder Django générique créer / mettre à jour des formulaires . Ce n’est pas l’administrateur, mais c’est assez facile à mettre en œuvre.
Vérifiez cette application: https://github.com/05bit/django-smarter .
Ce n'est pas encore bien documenté, mais je l'ai déjà utilisé dans quelques projets.
Dans Django 1.3, les "vues génériques". (Formulaires CRUD) ont été modifiés pour être basés sur les classes. Voir ici .