私はDjangoプロジェクトを持っていて、views
は、データベース内のオブジェクトに関する情報を持つテーブルを表示するページをレンダリングします。表示されるオブジェクトは、view
で決定された基準に基づいて異なります。DjangoのWebページ - どの情報をテーブルに表示するかを操作する
レンダリングするページを決定するためにview
で使用if
文は次のとおりです。
if request.GET.get('stage') == 'pd':
print "request.GET.get('stage') == 'pd' "
print "render_to_string() called with parameter: costing/report2_ccis.html"
context['html'] = render_to_string('costing/report2_ccis.html', context)
context['active_tab'] = '4'
if(project.deposit_received == True):
print "costing/reports_post_deposit.html is the page being rendered (project.deposit_received = true)... "
context['post_deposit'] = True
print "context['post_deposit']: ", context['post_deposit']
return render(request, 'costing/reports_post_deposit.html', context)
elif(project.deposit_received == False):
print "costing/reports_pre_deposit.html is the page being rendered (project.deposit_received = False)..."
context['post_deposit'] = False
print "context['post_deposit']: ", context['post_deposit']
return render(request, 'costing/reports_pre_deposit.html', context)
else:
print "request.GET.get('stage') != 'pd' "
print "render_to_string() called with parameter: costing/report_ccis.html"
context['html'] = render_to_string('costing/report_ccis.html', context)
context['active_tab'] = '5'
if(project.deposit_received == True):
print "costing/reports_post_deposit.html is the page being rendered (project.deposit_received = true)..."
context['post_deposit'] = True
print "context['post_deposit']: ", context['post_deposit']
return render(request, 'costing/reports_post_deposit.html', context)
elif(project.deposit_received == False):
print "costing/reports_pre_deposit.html is the page being rendered (project.deposit_received = false)..."
context['post_deposit'] = False
print "context['post_deposit']: ", context['post_deposit']
return render(request, 'costing/reports_pre_deposit.html', context)
view
で返さtemplates
の両方reports_tabbed.html
と呼ばれる別のテンプレート、およびに渡されreport_ccis.html
& report2_ccis.html
テンプレートを拡張render_to_string
両方を表示extends
pdf2_base.html
と呼ばれる別のテンプレート。 - (1がrender_to_string
に渡される方report_ccis.html
またはreport2_ccis.html
)Webページ上の情報を表示していますテーブルは
とpdf2_base.html
で定義されています:私は何をしたいか
<table class="pdf-report left">
{% for payment_details in payments_details %}
{% if forloop.first %}
<thead>
<tr>
{% for detail in payment_details %}
<th>{{ detail.0 }}</th>
{% endfor %}
<th></th>
</tr>
</thead>
{% endif %}
<tbody>
{% if 0 %}
<tr class="end-table-section"></tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
{% endif %}
<tr {% if forloop.last %}class="end-table-section last-row"{% endif %}>
{% for detail in payment_details %}
<td {% if detail.0 == 'Gross payment (£)' %}class="payment-{{detail.2}}"{% endif %}>
{% if detail.1 and detail.0 != 'Date paid' and detail.0 != 'Date' %}
{% if detail.0 == 'VAT (£)' or detail.0 == 'Scheduled payment (£)' or detail.0 == 'Gross payment (£)' %}
{{ detail.1|money }}
{% else %}
{{ detail.1 }}
{% endif %}
{% elif detail.1 %}
{{ detail.1|date:'d-M' }}
{% endif %}
</td>
{% endfor %}
<td></td>
</tr>
{% if 0 %}
<tr class="end-table-section"></tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
{% endif %}
{% endfor %}
<tr class="end-table-section">
<td>Gross payment now due:</td>
<td>{{gross_payment_due|money:'£'}}</td>
<td>Current contract sum</td>
<td>Exc VAT {{ latest_total_exc|money:'£' }}</td>
<td></td>
<td>Bank</td>
<td>Handelsbanken</td>
</tr>
<tr>
<td></td>
<td></td>
<td>Total payments made</td>
<td>Exc VAT {{total_paid_exc|money:'£'}}</td>
<td></td>
<td> acc</td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td>Outstanding contract sum</td>
<td>Exc VAT {{outstanding_exc|money:'£'}}</td>
<td>Inc VAT {{outstanding_inc|money:'£'}}</td>
<td>Sort Code</td>
<td></td>
</tr>
<tr class="last-row">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td colspan="2">Please ensure address is put as reference</td>
</tr>
</tbody>
</table>
、この表を変更でテンプレートのif(project.deposit_received == False)
の条件で表示されている場合view
のテーブルの列の1つ( '最新の合計')がテーブルに表示されません...しかし、テーブルが生成された&は、Django for
取得された情報に基づいて動的に変更されるためデータベースから、私はこれを行う方法がわかりません...
PythonまたはDjango/HTMLのどちらかのコードを明示的に伝える方法はありますか?特定の条件が満たされていますか?
ねえ、おかげで、更新のために、私はこれはGO-を与え、それが削除されていながら、 'deposit_received'変数が' False'のときはその列を、変数が 'True'のときはそれを削除するので、列はもはや表示されなくなりました。私が調べる必要があると思います今の状態に関して - 私のデバッグはこの変数の値をページをロードするたびに表示しています - この変数の値を 'True'または' False'に設定するプロジェクトでロードするかどうかは決して決まりません表示されます... – someone2088
@ someone2088テンプレートの値をチェックしましたか?テンプレート '{{post_deposit}}'に追加するだけです。これは 'post_deposit'の変更かどうかを示します。変数が変わっているのを見たら、あなたの質問のコードを編集してください。私は見ていきます。 – neverwalkaloner
私のテンプレートからの出力は見えません( '{{post_deposit}}'を追加した後でも) 'view'のデバッグでは' post_deposit'の値が変化していることが示されます。 TrueまたはFalseの場合、列はテーブルに表示されなくなりました... – someone2088