2017-03-12 3 views
0

とにかく、この値をパス値

{{ Product.PId }} 
を通過することがあります

PIdは別のデータベースのプライマリキーです

と最終的な結果は、質問

を合計する**

<input id="id_Product_ID" min="0" name="Product_ID" type="number" value="1" required=""> 

ようになるように、この

<input id="id_Product_ID" min="0" name="Product_ID" type="number" value="{{Product.PId}}" required=""> 

ようなもの{{Product.PIdを渡す方法があります} {{form.Product_PId}} に入力し、{{Product.PId}}の値が別のデータベースから取得した使用可能な数値になるようにします。**

{{}}を使用してフェレンス

forms.py

class PlaceOrder(forms.ModelForm): 

    class Meta: 
     model = Order 
     fields = ["Product_ID","HowMany","DateSubmit",] 

HTML

{% for Product in Display_Product %} 
     <form method="post" action="" id="CartInput"> {% csrf_token %} 
      <div> 
       {{ form.Product_ID }} 
       {{ form.HowMany }} 
       {{ form.DateSubmit }} 
      </div> 
      <div> 
       <input name="Cart{{ Product.PId }}" type="submit" value="Add to Cart"> 
      </div> 
     </form> 
{% endfor %} 

views.py

class Catalogue(generic.ListView, ModelFormMixin): 
    template_name = 'Shop/Catalogue.html' 
    model = models.Order 
    form_class = forms.PlaceOrder 

    def get(self, request, *args, **kwargs): 
     Display_Product = Product.objects.all() 
     now = datetime.datetime.now() 
     *** tried this one but failed, it just pass in the string {{Product.PId}} and not turn into number *** 
     form = PlaceOrder(initial= {'Product_ID': "{{Product.PId}}"}) 
     context = { 
      'form': form, 
      'date': now, 
      'Display_Product': Display_Product 
     } 
     return render(request, 'Shop/Catalogue.html', context) 

感謝と長い質問には申し訳ありません

答えて

0

オブジェクトを参照する構文はテンプレートでのみ使用されます。 初期値を渡すときは、Object.idを使用してください。

... 
# Get the object that you need 
product = Product.objects.first() 
# Define your initial values 
form = PlaceOrder(initial= {'Product_ID': product.id }) 
+0

[OK]を見つけるかもしれない願っています答えがありがとう、それは後で試してみる、私は私が私は正しい答えとして選択する前に、私はいくつかの答えを待つ私の広告に戻ってくる: –

0

これは私が探していたものですが、私は別のフォームメソッドを使用し、それらに

を組み合わせることができますことを発見した私はここでそれを出します誰かがそれ便利

<form method="post" action="" id="CartInput"> {% csrf_token %} 
      <div> 
       <input name="Product_ID" type="hidden" value="{{ Product.PId }}" > 
       <input name="HowMany" type="number" value="1" > 
       {{ form.DateSubmit }} 
      </div> 
      <div> 
       <input name="Cart{{ Product.PId }}" type="submit" value="Add to Cart"> 
      </div> 
     </form>