Django-frontendadmin ou comment éditer vos données en front-office
Par Nicolas Steinmetz. samedi 31 janvier 2009, 23:19. Python - Django django django-frontendadmin django-uni-form formulaire front-office uni-form édition | Lien permanent.
La description de django-frontendadmin est assez explicite :
django-frontendadmin is a set of templatetags to allow an easy and unobstrusive way to edit model-data in the frontend of your page
Prenons une page de mon projet start après intégration de django-frontendadmin :
D'un point de vu de code :
{% extends "base.html" %}
{% load frontendadmin_tags %}
{% block title %}
{{ object.name }}
{% endblock title %}
{% block menu %}
{% for th in all_theme %}
<li id="l{{ th.name }}"><a href="{{ th.get_absolute_url }}">{{ th.name }}</a></li>
{% endfor %}
<li>{% frontendadmin_add all_theme "Ajouter un thème" %}</li>
{% endblock menu %}
{% block content %}
<div id="breadcrumb">
<a href="/">Home</a> > <a href="/start/">Start</a> > <a href="{{ object.theme.get_absolute_url }}">{{ object.theme.name }}</a> > <a href="{{ object.get_absolute_url }}">{{ object.name }}</a>
</div>
<div class="category">
<h3>
{{ object.name }}
( {% frontendadmin_change object "Modifier" %} -
{% frontendadmin_delete object "Supprimer"%} )
</h3>
<ul>
{% for bm in object.bookmark_set.all|dictsort:"order" %}
<li>
<a href="{{ bm.url }}">{{ bm.name }}</a>
( {% frontendadmin_change bm "Modifier" %} -
{% frontendadmin_delete bm "Supprimer"%} )
</li>
{% endfor %}
</ul>
{% frontendadmin_add object.bookmark_set.all "Ajouter un bookmark" %}
</div>
{% endblock %}
En deux coups de cuillère à pot (rajout des lignes {% frontendadmin_* <objet / queryset> "label" %}), je peux donc très facilement ajouter/supprimer/modifier un favori ou une catégorie et ajouter un thème. Bien sûr, django-frontendadmin vérifie que vous avez bien les permissions de modifier le modèle en question avant de vous présenter les différents liens.
Si en plus, pour les formulaires d'ajout/modification/suppression, vous intégrez django-uniform (qui permet d'aisément utiliser Uni-Form dans les formulaires Django), il devrait y avoir moyen de faire quelque chose d'ergonomique 
Edit : Avec un bout de code, c'est plus parlant
