2017-09-26 78 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