2017-05-23 8 views
1

Je suis débutant en django-oscar et j'essaie de gérer une nouvelle vue sur la page.Comment ajouter une nouvelle page créée à un django-oscar modifié

Je l'ai déjà créé deux pages avec tableau de bord django-oscar,

https://ibb.co/cM9r0v

et faites de nouveaux boutons dans les modèles:

Lib/site-packages/oscar/templates/oscar/partials/nav_primary.html

https://gist.github.com/Kalinar/076fc8144869c3b50fc0bc9e52f825e4

Je ne sais pas comment faire un bon href = "???" à de nouvelles pages dans les boutons ... quelqu'un peut-il aider? Peut-être qu'il y a une meilleure façon de le faire, pouvez-vous me l'expliquer?

Répondre

0

Vous connaissez déjà les titre et bien sûr l'id de la page, et chaque page est une instance du modèle PagePromotion, juste interroger le modèle de ce nom/id et utiliser l'attribut PAGE_URL de l'instance renvoyée pour l'envoyer dans une variable dans le contexte de la vue qui affiche le menu.

Ensuite, dans le modèle:

href="{{ variable_containing_url }}" 
0

Oscar utilise l'application de flatpages de Django, de sorte que vous pouvez utiliser leurs balises de modèle pour ajouter dynamiquement des liens de navigation vers les pages que vous créez.

{% load flatpages %} 
{% get_flatpages as flatpages %} 

{% for page in flatpages %} 
<li class="dropdown active"> 
    <a href="{{ page.url }}" class="dropdown-toggle" {% if not expand_dropdown %} data-toggle="dropdown"{% endif %}> 
     {% trans page.title %} 
    </a> 
</li> 
{% endfor %} 

Vous pouvez trouver plus d'informations sur l'application de flatpages dans le Django flatpage documentation.