2017-08-09 7 views
0

Djangoテンプレート内のオブジェクトを生成します。私は行(フィールドをループすることはできません)だけを使用するため、私はレジスタでループを作ることができません。わかる?は、私は私のシステムで2つのモデルがあり、動的に

は、私のコードのを見てみましょう:

ビュー:

def main(request): 
dp_col = Display.objects.all() 
reg = Registers.objects.latest('pk') 
context = { 
    'dp_col': dp_col, 
    'reg':reg 
} 
return render(request,'operation.html',context) 

テンプレート:

{% for dp in dp_col %} 
     <div class='col-md-6'> 
      <div class="display-content"> 
       <div class="display-data"> 
        <h3 class="text-center display-desc">{{dp.name}} 
         <span>:</span> 
         <span class="text-center display-value">I need put the value of each field here</span> 
         <span class='display-unit'> {{dp.UE}}</span> 
        </h3> 
       </div> 
      </div> 
     </div> 
    {% empty %} 
     <!--colocar alguma coisa aqui, caso não tenha nada no for--> 
    {% endfor %} 

任意のアイデア? ありがとう!

答えて

0

これは容易にDjangoのフォームを使用することによって解決することができる。operations.htmlで

yourapp/forms.py

from django import forms 

class DisplayForm(forms.ModelForm): 
    class Meta: 
     model = Display 
     fields = '__all__' 

yourapp/views.py

from .forms import DisplayForm 

def main(request): 
    # if this is a POST request we need to process the form data 
    if request.method == 'POST': 
     # create a form instance and populate it with data from the request: 
     form = DisplayForm(request.POST) 
     # check whether it's valid: 
     if form.is_valid(): 
      # process the data in form.cleaned_data as required 
      # ... 
      # redirect to a new URL: 
      return HttpResponseRedirect('/thanks/') 

    # if a GET (or any other method) we'll create a blank form 
    else: 
     form = DisplayForm() 

    return render(request, 'operation.html', {'form': form}) 

<form method="post" action=""> 
    {{ form }} 
</form> 

またはy OUは、各フィールドにカスタムHTMLをしたい:

<form method="post" action=""> 
    {% for field in form %} 
     {{ field.label_tag }} {{ field }} 
    {% endfor %} 
</form> 

はリファレンス: https://docs.djangoproject.com/en/1.11/topics/forms/

+0

私は私のビューの最初の呼び出しでこれを必要とします。これはGETメソッドです。私はこれをテンプレートの表示のコードを繰り返すのを避けるために行います。 – FelipeFonsecabh

+0

私のテンプレートでこのリンクを見てください:https://i.stack.imgur.com/16BpN.png ティートルとUEのデータはディスプレイモデルから来ており、フィールドの値はレジスタモデルから来ています。コールビューの前に、私はレジスタテーブルから最後のレジスタを返すクエリを作成します。しかし、私は1つのレジスタを持っているので、これらのクエリーセットを反復することはできません。 – FelipeFonsecabh

関連する問題