2017-09-26 2 views
0

J'ai 6 boutons qui sont des options pour acheter quelque chose. Vous ne pouvez pas faire plusieurs choix mais en choisir un et il sélectionne automatiquement cet élément et vous redirige vers la section de paiement. Ma question est, en utilisant Django, comment intégrer les valeurs de ces boutons (c'est-à-dire le prix, les crédits, etc.) dans chaque bouton afin qu'ils soient ceux utilisés dans la caisse. Ma méthode initiale était que j'ai créé les éléments dynamiquement dans Django.admin et au lieu d'avoir une page dans laquelle vous avez sélectionné individuellement un élément que vous avez à la place une case à cocher à sélectionner parmi les éléments que j'ai créés dans l'admin via un modèle (bono) avait créé. Cependant, j'ai besoin que les éléments soient codés en boutons individuels plutôt que de se fier à Django.admin et au serveur.Boutons avec Django pour choisir les articles

J'ai joint un échantillon html et une image montrant les boutons et ajouterai d'autres éléments sur demande. Je n'ai simplement aucune idée des éléments que je devrais inclure: EDIT: Je suis actuellement en train d'utiliser une balise de lien pour rediriger vers une page différente mais qui ne contient rien au modèle. Le modèle pour les paquets est comme suit:

class CreditPackage(models.Model): 
    name = models.CharField(max_length = 400, null=True, blank = True, verbose_name = 'Credit Package Name') 
    description = models.TextField(max_length = 10000, null=True, blank = True, verbose_name = 'Description') 
    price = models.IntegerField(null=True, blank = True, verbose_name = 'Price') 
    nr_credits = models.IntegerField(null=True, blank = True, verbose_name = 'Number of Credits:') 
    on_sale = models.BooleanField(null=False, blank = False, verbose_name = 'On Sale:') 

que je dois faire les cercles, sur un clic, passer les informations pertinentes à ce modèle et le re-routage à la caisse. Le code HTML d'un des boutons seulement

enter image description here :

<div class="col-xs-12 col-sm-12 col-md-4 col-lg-4 text-center bonoint"> 
       <a href="{% url 'student-packages' %}"> 
       <div class="circle" style="background: #0045ab" ><span style="font-weight:bold; font-size:60px;" >3</span><br> Credits</div> 
       <div id="price">25€</div> 
       <div id="savings"> 
        {% trans 'You save' %} <span style="font-weight:bold">5€</span><br><br> 
        {% blocktrans %} Ideal if you want to<br> 
        try out Milingual {% endblocktrans %}</br>. 
       </div></a> 
      </div> 

le code html complet de la page:

{% load static %} 
{% load staticfiles %} 
{% load i18n %} 

{% block bonos %} 
<div class="container" > 
<div id='titleb' class="container"> 
    <h2 style= "color:black; align=center">MILINGUAL BONO</h2> 
</div> 
<div id='titleb' class="container"> 
    <h1 style= "color:black; align=center">MILINGUAL BONO</h1> 
</div> 

<div> 
<p>{% trans 'The Milingual Bono offers you more classes for much lesser. It saves you the hasslse of pasying each time you book a class, at the same time offering you the flexibilty of attending any Milingual class or event, anytime you want. Pick the 3 class bono if you would like to give it a try firt or book the <b>season bono</b> for unlimited access for 3 months.' %} 
</p> 
</div> 
    <div> 
     <div class="row"> 
     <!-- New set of columns, centered --> 
     <div> 
     <div class="row"> 
      <div class="col-xs-12 col-sm-12 col-md-4 col-lg-4 text-center bonoint" data-toggle="modal"> 
       <a href="{% url 'student-packages' %}"> 
       <div class="circle" style="background: #0045ab" ><span style="font-weight:bold; font-size:60px;" >3</span><br> Credits</div> 
       <div id="price">25€</div> 
       <div id="savings"> 
        {% trans 'You save' %} <span style="font-weight:bold">5€</span><br><br> 
        {% blocktrans %} Ideal if you want to<br> 
        try out Milingual {% endblocktrans %}</br>. 
       </div></a> 
      </div> 
      <div class="col-xs-12 col-sm-12 col-md-4 col-lg-4 text-center bonoint" data-target="#login-modal"> 
       <div class="circle" style="background: #58aeb4" ><span style="font-weight:bold; font-size:60px;">6</span><br> Credits</div> 
       <div id="price">39€</div> 
       <div id="savings"> 
        {% trans 'You save' %} <span style="font-weight:bold">21€</span><br><br> 
        {% blocktrans %} Ideal if you want to<br> 
        try Milingual or have attended <br> 
        a couple of classes. {% endblocktrans %} 
       </div> 
      </div> 
      <div class="col-xs-12 col-sm-12 col-md-4 col-lg-4 text-center bonoint" data-toggle="modal" data-target="#login-modal"> 
       <div class="circle" style="background: #e8bf16"><span style="font-weight:bold; font-size:60px;">8</span><br> Credits 
       </div> 
       <div class="ribbon-wrapper-blue"> 
        <div class="ribbon-blue">{% trans 'Most Popular' %} 
        </div> 
       </div> 
       <div id="price">50€</div> 
       <div id="savings"> 
        {% trans 'You save' %} <span style="font-weight:bold">30€</span><br><br> 
        {% blocktrans %} Ideal if you want to practice <br> 
        twice a week for a month {% endblocktrans %} 
       </div> 
      </div> 
     </div> 
    </div> 

    </div> 
    <span><br></span> 
<div> 
    <div> 
     <div class="row"> 
     <!-- New set of columns, centered --> 
     <div> 
     <div class="row"> 
      <div class="col-xs-12 col-sm-12 col-md-4 col-lg-4 text-center bonoint" data-toggle="modal" data-target="#login-modal" > 
       <div class="circle" style="background: #a7a5a7"><span style="font-weight:bold; font-size:60px;">10</span><br>Credits 
       </div> 
       <div id="price">64€</div> 
       <div id="savings"> 
        {% trans 'You save' %} <span style="font-weight:bold">36€</span><br><br> 
        {% blocktrans %} Ideal if you want to make<br> 
        Milingual part of your routine {% endblocktrans %} 
       </div> 
      </div> 
      <div class="col-xs-12 col-sm-12 col-md-4 col-lg-4 text-center bonoint" data-toggle="modal" data-target="#login-modal"> 
       <div class="circle" style="background: #c6595b"><span style="font-weight:bold; font-size:60px;">12</span><br> Credits</div> 
       <div id="price">79€</div> 
       <div id="savings"> 
        {% trans 'You save' %} <span style="font-weight:bold">41€</span><br><br> 
        {% blocktrans %} Ideal for multiple classes per<br> 
        week. {% endblocktrans %} 
       </div> 
      </div> 
      <div class="col-xs-12 col-sm-12 col-md-4 col-lg-4 text-center bonoint" data-toggle="modal" data-target="#login-modal"> 
       <div class="circle2" style="background: #b18358"><span style="font-weight:bold; font-size:50px;">SEASON</div> 
       <div id="price">89€</div> 
       <div id="savings"> 
        {% trans 'You save' %} <span style="font-weight:bold">200€*</span><br><br> 
        {% blocktrans %} Get unlimited accee to <br> 
        classes as well as paid events<br> 
        for no extra cost. {% endblocktrans %} 
       </div> 
      </div> 
     </div> 
    </div> 
    </div> 
    </div> 

    </div> 
</div> 
</div> 
{% endblock bonos %} 

Répondre

1

Créer un modèle (DataStorageModel dans mon exemple) qui stocke tous les info dans votre base de données et le référencer par un champ de nom.

mettre ce nom à vos boutons submit avec l'étiquette de nom, par exemple:

<input id="create" type="submit" name="create" value="Create"/> 

Ensuite dans votre chèque de views.py le nom dans request.POST:

if request.POST.get('create'): 
    obj = DataStorageModel.objects.get(name='create') 
    ... 

Mise à jour:

Je viens de voir que vous avez l'intention de stocker les prix dans une étiquette html. NE FAIS JAMAIS CELA! Les gens peuvent simplement changer ces valeurs ... Donner le moins possible au client. Par conséquent vous avez besoin d'un modèle pour stocker vos prix etc.

DataStorageModel(model.Model): 
    price = models.DecimalField(max_digits=8, decimal_places=2) 
    credits = models.PositiveIntegerField() 
    name = models.CharField() 
+0

J'ai du mal à mettre en œuvre ce que vous avez décrit. Comment je passe les valeurs individuelles de chaque article? Création d'un modèle séparé pour chaque élément avec les valeurs prédéfinies ou quoi? Une explication plus détaillée serait très appréciée. – fmakawa

+0

et la redirection à la caisse je suppose est dans les vues? – fmakawa