ユーザーがドロップダウン メニューからオプションを選択して送信すると、データが返されるビューを作成しようとしています。具体的には、データベース内のモデルから選択し、そのクラスのすべてのインスタンスを返します。django-tables2 を使用してデータを出力し、並べ替え可能にしていますが、これが私のこだわりです。
Views.py
def output_form(request):
results = None
if request.GET.get('browse'):
selection = request.GET.get('browse')
class ModelTable(tables.Table):
class Meta:
model = selection
results = ModelTable(selection.objects.all())
RequestConfig(request, paginate={"per_page": 3}).configure(results)
return render(request, 'projectdb/output.html', {
'results': results,
})
HTML
<form method="GET">
<select name="browse">
<option>Model1</option>
<option>Model2</option>
</select>
<input type="submit" value="Submit" />
</form><br/><br/>
{% if results != None %}
{% render_table results %}
{% endif %}
スローされるエラーは、タイトルのとおりです。
「unicode」オブジェクトには属性「_meta」がありません
「選択」ユニコードを文字列に変換しようとしましたが、基本的に同じエラーがスローされます (str には属性 _meta がありません)。
どんな助けにもとても感謝しています。
編集:明確にするために、私が達成しようとしていること:
ユーザーがドロップダウンからモデルを選択 ---> 選択したモデルが何らかの形でテーブルに渡される ---> テーブルがインスタンス化され、選択したモデルのデータとともにドロップダウンの下のページに返される