2017-09-26 52 views
0

我有6个按钮,这是选择购买的东西。您不能做出多种选择,只能选择一种,并自动选择该项目并将您重新路由到结帐部分。我的问题是,使用Django,我如何将这些按钮的值(即价格,积分等)嵌入到每个按钮中,以便它们在结帐中使用。我最初的方法是我在Django.admin中动态地创建了这些项目,而不是在其中单独选择了一个项目的页面,而是通过模型(bono)从管理员中创建的项目中选择了一个复选框已创建。但是,我需要将这些项目硬编码到各个按钮中,而不是依赖于Django.admin和服务器。按钮与Django来选择项目

我附上了一个示例html和图片显示按钮,并会根据请求添加任何其他项目。我根本不知道应该包括哪些项目: 编辑: 我目前正在使用链接标记重新路由到不同的页面,但不会发布任何内容到模型。 用于包装的模型如下:

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:') 

我需要做的圆圈,在点击,通过相关信息到模型和重新路由到结账。

enter image description here 只有一个按钮的HTML:

<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> 

页面完整的HTML:

{% 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 %} 

回答

1

创建(在我的例子DataStorageModel)的模型,存储所有的您的数据库中的信息,并通过某个名称字段引用它。

把这个名字给您的提交按钮的名称标签,如:

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

然后在你的views.py您在request.POST名称:

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

更新:

我刚才看到你打算在html标签中存储价格。切勿这样做!人们可以改变这些价值......尽可能少地给客户。因此,您需要一个模型来存储您的价格等。

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

我正在努力实现您所描述的内容。我如何传递每个项目的个人价值?用预设值为每个项目创建一个单独的模型或什么?更多的详细解释将不胜感激。 – fmakawa

+0

和重定向到结帐我想是在视图? – fmakawa