私が解決しようとしている問題:
テーブルmy_table
が空でない場合にのみ検索バーを表示し、それ以外の場合は非表示にします。django_tables2オブジェクトの空/ヌルをチェックする方法は?
ここに私のviews.pyです:
def my_table(request):
model1 = Model1.objects.all().filter(Q(some_query))
table = MyTable(model1)
RequestConfig(request).configure(table)
if not table:
print "table is empty"
table = None
else:
print "table is not empty."
return render(request, 'my_table.html', {'my_table':table,})
は、ここに私のmy_table.html
です:
{% load render_table from django_tables2 %}
{% if my_table %}
Number of entries: {{ my_table|length }}.
<section>
<form method="post" action=".">
{% csrf_token %}
<input type="text" class="search-query span80" id="search" name="search" placeholder="Type to search">
<button type="submit" class="btn">Search</button>
</form>
</section>
{% else %}
<!-- There's no my_table. -->
{% endif%}
{% render_table my_table %}
しかし、my_table(request)
views.pyで、このテーブルのオブジェクトは、本当に何も含まれていない、それはでは何もレンダリングしません。 htmlは空ですが、検索バーは表示されません。
お知らせください。私が間違っているところ?コメントに応えて
は、ここにMyTableというコードです:
class MyTable(tables.Table):
entry1 = tables.Column(verbose_name="Entry 1")
entry2 = tables.Column(verbose_name="Entry 2")
class Meta:
model = MyModel
empty_text = "There is no entry record."
order_by = "entry1"
orderable = True
sequence = ('entry1', 'entry2')
fields = ('entry1', 'entry2')
attrs = {"class": "paleblue", "style": "width:380px"}
そして、ここに、mymodelためのコードです:
class MyModel(models.Model):
entry1 = models.CharField(primary_key=True, max_length=11L, db_column='Entry1', blank=True) # Field name made lowercase.
entry2 = models.CharField(max_length=11L, db_column='Entry2', blank=True) # Field name made lowercase.
class Meta:
db_table = 'my_table'
もしあなたが 'table [0]'ではないなら 'を試しましたか? – JazZ
ありがとうございますが、私のテーブルはインデックス作成をサポートしていません。 –
何が入っていますか? – JazZ