Question

Puis-je imprimer une url /admin/manage/products/add d'un certain point de vue dans un modèle?

Voici la règle que je veux créer un lien pour

(r'^manage/products/add/$', create_object, {'model': Product, 'post_save_redirect': ''}),

Je voudrais avoir /gérer/produits/ajouter dans un modèle sans le coder en dur.Comment puis-je faire cela?

Edit: Je ne suis pas à l'aide de l'administrateur par défaut (bien, que je suis, mais c'est à une autre url), c'est mon propre

Était-ce utile?

La solution

Vous pouvez utiliser get_absolute_url, mais qui ne fonctionne que pour un objet particulier.Depuis votre objet n'a pas encore été créé, il ne fonctionnera pas dans ce cas.

Vous souhaitez utiliser nommé modèles URL.Voici une rapide intro:

Changer la ligne dans votre urls.py pour:

(r'^manage/products/add/$', create_object, {'model': Product, 'post_save_redirect': ''}, "create-product"),

Puis, dans votre modèle vous utilisez cette option pour afficher l'URL:

{% url create-product %}

Si vous êtes à l'aide de Django 1.5 ou version ultérieure vous avez besoin de ceci:

{% url 'create-product' %}

Vous pouvez faire des choses plus puissantes nommé URL modèles, ils sont très pratique.Notez qu'ils ne sont que dans la version de développement (et aussi 1.0).

Autres conseils

Si vous utilisez nommé modèles url vous pouvez faire la follwing dans votre modèle

{% url create_object %}

Le moyen privilégié de la création de l'URL est par l'ajout d'un get_absolute_url méthode pour votre modèle de classes.Vous pouvez coder en dur le chemin de sorte que vous au moins de se rapprocher à la suite de la BAISER la philosophie.

Vous pouvez aller plus loin en utilisant la permalink décorateur que les chiffres le chemin d'accès basé sur les adresses url de configuration.

Vous pouvez en lire plus dans la documentation de django ici.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top