Reputation: 21
def xyz():
site_data=site.objects.all()
site_fields = site._meta.get_fields()
site_fields_name = [f.name for f in site_fields][1:]
return render(request, "Demoapp/InputGssA1.html", {'headers': table_structure,'site_data':site_data,'site_fieldname':site_fields_name})
this is i am render from function inside view.py and want to show in table format in InputGssA1.html, here table code is like
{% for i in site_data %}
<tr>
{% for x in site_fieldname %}
<td>{{i.x}}</td>
{% endfor %}
</tr>
{% endfor %}
but problem is I can't access object.fieldname using i.x in my code , i.fieldname statically work but this way it not working, How I access object's fieldname this way inside template tag??
Upvotes: 0
Views: 234
Reputation: 51948
You don't need such complicated solution. You can simply try with values()
:
# view
def xyz(request):
site_fields = site._meta.get_fields()
site_fields_names = [f.name for f in site_fields][1:]
site_data=site.objects.values(*site_fields_name)
return render(request, "Demoapp/InputGssA1.html", {'headers': table_structure,'site_data':site_data})
# template
{% for data in site_data %}
{% for field, value in data.items %}
<tr>
<td>{{ value }}</td>
</tr>
{% endfor %}
{% endfor %}
Upvotes: 1