Django-fr

Forum

#1 28-05-2009 21:43:19

Joel Quinet
Membre
Inscription : 11-08-2010
Messages : 21

Probleme d'affichage d'un id dans un template

Bonjour à tous,

Je fait du python principalament pour des outils personnels, je débute
avec django egalement pour de outils personnels.
Pour mes débuts, je me construit un petit gestionnaire de taches pour le
moment mon application contient une seule page me permettant d'afficher
les taches; j'ai également activé l'interface d'administration de django.
Dans un premier temps, je voudrait mettre un lien dans la pages des
taches me permettant d'acceder a l'interface d'administration de cette
taches pour pourvoir la mettre a jour.
J'essaie donc de generer un lien dans mon template avec le code suivant
<TD> <center> <a href=/admin/todo/todo/ + {{ x.id }} + /> Edit </a>
</center> </TD>.
Mon probleme est que x.id reste vide dans le lien alors qu'il a bien une
valeur dans la base de données.

Merci pour votre aide.
Joel

Hors ligne

#2 28-05-2009 21:50:05

pampryl
Membre
Inscription : 11-08-2010
Messages : 14

Re : Probleme d'affichage d'un id dans un template

Hello Joel,

Peux tu nous montrer à quoi ressemble la fonction qui appelle le
"render_to_response" correspondant stp?

Ludo,

ps: la balise 'center' est 'deprecated' ;-) (
http://www.w3schools.com/TAGS/default.asp )


On Thu, 28 May 2009 22:43:19 +0200, Joel Quinet <bock.catherine _AT_ gmail.com>
wrote:
> Bonjour à tous,
>
> Je fait du python principalament pour des outils personnels, je débute
> avec django egalement pour de outils personnels.
> Pour mes débuts, je me construit un petit gestionnaire de taches pour le
> moment mon application contient une seule page me permettant d'afficher
> les taches; j'ai également activé l'interface d'administration de django.
> Dans un premier temps, je voudrait mettre un lien dans la pages des
> taches me permettant d'acceder a l'interface d'administration de cette
> taches pour pourvoir la mettre a jour.
> J'essaie donc de generer un lien dans mon template avec le code suivant
> <TD> <center> <a href=skins/default/admin/todo/todo/ + {{ x.id }} + />
Edit </a>
> </center> </TD>.
> Mon probleme est que x.id reste vide dans le lien alors qu'il a bien une
> valeur dans la base de données.
>
> Merci pour votre aide.
> Joel
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django

Hors ligne

#3 28-05-2009 21:51:59

David Larlet
Membre
Inscription : 11-08-2010
Messages : 102

Re : Probleme d'affichage d'un id dans un template

Bonjour,

Le 28 mai 09 à 22:43, Joel Quinet a écrit :

> Bonjour à tous,
>
> Je fait du python principalament pour des outils personnels, je 
> débute avec django egalement pour de outils personnels.
> Pour mes débuts, je me construit un petit gestionnaire de taches 
> pour le moment mon application contient une seule page me permettant 
> d'afficher les taches; j'ai également activé l'interface 
> d'administration de django.
> Dans un premier temps, je voudrait mettre un lien dans la pages des 
> taches me permettant d'acceder a l'interface d'administration de 
> cette taches pour pourvoir la mettre a jour.
> J'essaie donc de generer un lien dans mon template avec le code 
> suivant <TD> <center> <a href=/admin/todo/todo/ + {{ x.id }} + /> 
> Edit </a> </center> </TD>.
> Mon probleme est que x.id reste vide dans le lien alors qu'il a bien 
> une valeur dans la base de données.

Il vaut mieux dans ce cas (et dans tous les cas où une URL doit être 
utilisée) avoir recours aux urls nommées. Il est assez simple de 
générer ce lien au niveau du modèle :

class MyModel(models.Model):
     @models.permalink
     def get_admin_url(self):
         return ('admin_%s_%s_change' % (self._meta.app_label, 
self._meta.module_name), [self.id])

Et ensuite dans les templates :
<p class="adminlink"><a href="{{ x.get_admin_url }}" title="Edit your 
object">Edit</a></p>

(avec du code html valide c'est mieux)

Bonne soirée,
David

Hors ligne

#4 29-05-2009 07:28:42

Joel Quinet
Membre
Inscription : 11-08-2010
Messages : 21

Re : Probleme d'affichage d'un id dans un template

Mon problème est résolu ce fonctionne, merci a toi David, je n'avais pas
fait attention qu'il manquait les "" dans le html ;-) avec les "" ca
fonctionne.

Néanmoins, je trouve le solution de David plus élégante et je vais
essayer de la mettre en place dans les jours qui viennent.

Pour Ludovic,
Voici le code qui permet de genere la vue
def index(request): #Define our function, accept a request

    items =
todo.objects.filter(completion_status__lt=100).order_by('priority')#[:20]

    return render_to_response('todo_index.html', {'items': items})
#Responds with passing the object items (contains info from the DB) to
the template index.html


Merci beaucoup a vous deux pour votre aide.

Joel



David Larlet wrote:
> Bonjour,
>
> Le 28 mai 09 à 22:43, Joel Quinet a écrit :
>
>> Bonjour à tous,
>>
>> Je fait du python principalament pour des outils personnels, je
>> débute avec django egalement pour de outils personnels.
>> Pour mes débuts, je me construit un petit gestionnaire de taches pour
>> le moment mon application contient une seule page me permettant
>> d'afficher les taches; j'ai également activé l'interface
>> d'administration de django.
>> Dans un premier temps, je voudrait mettre un lien dans la pages des
>> taches me permettant d'acceder a l'interface d'administration de
>> cette taches pour pourvoir la mettre a jour.
>> J'essaie donc de generer un lien dans mon template avec le code
>> suivant <TD> <center> <a href=/admin/todo/todo/ + {{ x.id }} + />
>> Edit </a> </center> </TD>.
>> Mon probleme est que x.id reste vide dans le lien alors qu'il a bien
>> une valeur dans la base de données.
>
> Il vaut mieux dans ce cas (et dans tous les cas où une URL doit être
> utilisée) avoir recours aux urls nommées. Il est assez simple de
> générer ce lien au niveau du modèle :
>
> class MyModel(models.Model):
>     @models.permalink
>     def get_admin_url(self):
>         return ('admin_%s_%s_change' % (self._meta.app_label,
> self._meta.module_name), [self.id])
>
> Et ensuite dans les templates :
> <p class="adminlink"><a href="{{ x.get_admin_url }}" title="Edit your
> object">Edit</a></p>
>
> (avec du code html valide c'est mieux)
>
> Bonne soirée,
> David
>
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django

Hors ligne

Pied de page des forums