2016-09-23 13 views
0

私はdjango poweredウェブサイトを作成しています。具体的には、宅配業者のウェブサイト。私は引用アプリケーションとして機能するアプリケーションを作成する必要があります。ユーザーはパッケージの寸法をフォームに入力し、フォームを送信した後、入力された寸法に基づいて価格/見積もりが返されます。Djangoで見積もりフォームを作成する

私は (views.py)

from django.shortcuts import render, redirect 
from quote.forms import QuoteForm 

    def quoting(request): 
     if request.method == 'GET': 
      form = QuoteForm() 
     else: 
      form = QuoteForm(request.POST) 
      if form.is_valid(): 
       Length = form.cleaned_data['Length'] 
       Breadth = form.cleaned_data['Breadth'] 
       Height = form.cleaned_data['Height'] 

       return redirect('thanks') 
     return render(request, "quote/quote.html", {'form': form}) 

(forms.py)

from django import forms 

class QuoteForm(forms.Form): 

    Length = forms.Integer() 
    Breadth = forms.Integer() 
    Height= forms.Integer() 

(quote.html)

{% extends "shop/base.html" %} 
{% block content %} 
<form method="post"> 
    {% csrf_token %} 
    {{ form }} 
    <div class="form-actions"> 
     <button type="submit">Send</button> 
    </div> 
</form> 
{% endblock %} 

その後、私はこれまでのところ、これを行っています私は答えを表示するHTMLが欠けていることを認識しています。私はこれを行う方法がわかりません。

価格はによって決定されます。

価格=配送重量のX距離 配送重量=(長さ×幅×高さ)/ 5000事前に

感謝:)

答えて

0

あなたはにリダイレクトしています入力が受信された後の「感謝」ページ。この時点で何かを返す必要はありません。

長さ、幅、高さを入力した後。 (Length * Breadth * Height)/ 5000.

変数 'total_price'に格納することができます。次に、レンダリング時にコンテキストに 'total_price'を追加します。

最後に、HTMLに、あなたはこのことができます

{% if total_price %} 
    {{ total_price }} 
{{ else }} 
    {{ form }} 

希望のようなDjangoテンプレートタグを追加することができます!

+0

私は再びそれをしようとしましたが、下記を参照してくださいhere-立ち往生しています –

0

私はそれが私の入力を持つだけでフォーム

(views.py)

from django.http import HttpResponse, HttpResponseRedirect 
    from django.shortcuts import render, redirect 
    from quote.forms import QuoteForm 


def quoting(request): 
    if request.method == 'GET': 
     form = QuoteForm() 
    else: 
     form = QuoteForm(request.POST) 
     if form.is_valid(): 
      Length = form.cleaned_data['Length'] 
      Breadth = form.cleaned_data['Breadth'] 
      Height = form.cleaned_data['Height'] 
      totalprice=((Length*Breadth*Height)/5000) 
    return render(request, "quote/quote.html", {'form': form}) 

def answer(request): 
    return render(request,"quote/out.html") 

(quote.html)

{% extends "shop/base.html" %} 
{% block content %} 
<form method="post"> 
{% csrf_token %} 
{{ form }} 
<div class="form-actions"> 
<button type="submit" action='/quote/out.html/'>Send</button> 
</div> 
</form> 
{% endblock %} 

(out.htmlに返すフォームを送信)

{% extends "shop/base.html" %} 
    {% block content %} 
    {% if totalprice %} 
    {{ totalprice }} 
     {{ else }} 
     {{form}} 
{% endblock %} 

(forms.py)

from django import forms 

class ContactForm(forms.Form): 

    Length = forms.IntegerField(required=True) 
    Breadth = forms.IntegerField(required=True) 
    Height = forms.IntegerField() 

(urls.py(アプリ))

from django.conf.urls import patterns, url 
from django.views.generic import TemplateView 
     url(r'^quoting/$', 
      'quote.views.quoting', 
      name='quoting' 
      ), 
     url(r'^answer/$', 
      'quote.views.answer', 
      name='answer' 
      ) 
関連する問題