2010-08-25 3 views
1

J'ai deux vues différentes (par exemple, une pour les couleurs et d'autres pour les voitures) Ces vues pointent vers le même modèle.
Si vous cliquez en une seule couleur, le modèle affichera toutes les informations sur la couleur sélectionnée, la même chose que la voiture.django templates html

Ce que je suis en train de faire est d'insérer un bouton pour revenir en arrière:

<form action=""> 
{% ifequal back_to colors %} 
    <a href="/browse/colors/" style= "text-decoration: none"> 
    <input type="button" value="Go back"></input></a> 
{% endifequal %} 
{% ifequal back_to cars %} 
    <a href="/browse/cars" style= "text-decoration: none"> 
    <input type="button" value="Go back"></input></a> 
{% endifequal %} 
</form> 

où dans la vue des couleurs que je passe « back_to »: « couleurs » et vue « back_to » voitures: 'voitures '.
Le résultat est que j'ai deux boutons pour revenir dans les deux pages. Ce que je voulais, c'était si j'étais en page couleur, seulement le bouton pour revenir à la page où je sélectionne les couleurs, et si j'étais en voiture, seul le bouton pour revenir à la page je sélectionne les voitures.
J'espère avoir fait mon point, si quelqu'un comment faire cela, je serai reconnaissant.

Répondre

1

Si vous ne pouvez garantir qu'il n'y a que deux options (voitures ou couleurs), vous pouvez effectuer les opérations suivantes:

<form action=""> 
{% ifequal back_to colors %} 
    <a href="/browse/colors/" style= "text-decoration: none"> 
    <input type="button" value="Go back"></input></a> 
{% else %} 
    <a href="/browse/cars" style= "text-decoration: none"> 
    <input type="button" value="Go back"></input></a> 
{% endifequal %} 
</form> 

également l'extrait ci-dessus peut être simplifiée:

<form action=""> 
<a href="{% ifequal back_to colors %}/browse/colors{% else %}/browse/cars{% endifequal %}" 
    style= "text-decoration: none"> 
    <input type="button" value="Go back"></input></a> 
</form> 

Mise à jour

Deniz Dogan fait un good point à propos de l'utilisation inverse.

+0

En ce moment j'ai deux options mais dans un futur proche j'aurais au moins une vue plus pointant vers le même modèle. Et je ne sais pas pourquoi mais ton exemple ne marche pas, maintenant je n'ai plus qu'un bouton mais la direction est toujours la même, les couleurs. – pavid

+0

Pouvez-vous imprimer la valeur de 'back_to' et voir ce qui se passe? De plus, si 'colors' n'est pas une variable, vous devriez avoir des guillemets autour de celle-ci. Comme ceci: '{% ifequal back_to" couleurs "%}' –

+0

bonne astuce! si je mets des couleurs à l'intérieur des citations, rien n'apparaît. quand j'ai essayé d'imprimer back_to ({{back_to}}) rien n'apparaît. Donc, l'erreur devrait être là .. – pavid

0

Au lieu de passer des chaînes normales comme valeurs pour back_to vous pouvez les faire en utilisant des URL django.core.urlresolvers.reverse en tant que tels:

from django.core.urlresolvers import reverse 
url_to_my_view = reverse('name_of_view') # Gets the URL to the view! 

'name_of_view' est le name of your view tel que défini dans votre URLconf. J'espère que cela pourra aider.

+0

Avant j'ai essayé avec des URL mais je n'ai pas travaillé. Je peux montrer ce que j'ai fait: {% url/browse/colors/comme col_url%} {% url/browse/cars/comme car_url%}

{% if col_url%} {% endif%} { % si car_url%} {% endif%}
pavid