Reputation: 30
I want to fetch data from models. But I am getting Reference Object in QuerySet instead of actual data.
This is my 3 model from which I want to fetch data.
class Residence(models.Model):
residence_name = models.CharField(max_length=30)
residence_address = models.CharField(max_length=30)
residence_city = models.CharField(max_length=20)
residence_state = models.CharField(max_length=20)
residence_pincode = models.IntegerField()
description = models.CharField(max_length=255)
rent = models.IntegerField()
image = models.ImageField(upload_to='Images')
class Facility(models.Model):
residence_id = models.ForeignKey('Residence', on_delete=models.CASCADE)
facility_type = models.CharField(max_length=30)
class Residence_type(models.Model):
residence_id = models.ForeignKey('Residence', on_delete=models.CASCADE)
residence_type = models.CharField(max_length=7)
This is my class in view.py in which I have to fetch data from Django-models
def view_all(request):
residenceList = Residence.objects.all()
typeList = Residence_type.objects.all()
facilityList = Facility.objects.all()
residenceDict = {
"Residence": residenceList,
"Type": typeList,
"Facility": facilityList
}
print(residenceList);
print(typeList);
print(facilityList);
return render(request, 'view-all.html', residencedict)
I didn't get any data. Because when I try to print the data in the console I get Reference Objects in QuerySet instead of model data.
<QuerySet [<Residence: Residence object (1)>, <Residence: Residence object (2)>]>
<QuerySet [<Residence_type: Residence_type object (1)>, <Residence_type: Residence_type object (2)>]>
<QuerySet [<Facility: Facility object (1)>, <Facility: Facility object (2)>]>
I want the data in QuerySet and not the reference object.
Here my code of HTML template. I don't know ho to print those data from dict to HTML template. I am using key value pair in dict and for loop in HTML template.
<table class="grid-table">
<tr>
<th>Name</th>
<th>Address</th>
<th>Description</th>
<th>Rent</th>
<th>Facility</th>
<th>Residence Type</th>
<th>Image</th>
</tr>
{% for residence, type, facility in Residence.items %}
<tr>
<td>{{ residence.residence_name }}</td>
<td>{{ residence.residence_address residence.residence_city residence.residence_pincode }}</td>
<td>{{ residence.description }}</td>
<td>{{ residence.rent }}</td>
<td>{{ facility.facility_type }}</td>
<td>{{ type.residence_type }}</td>
<td>{{ residence.image }}</td>
</tr>
{% endfor %}
</table>
Upvotes: 0
Views: 126
Reputation: 1394
Replace
residenceList = Residence.objects.all()
typeList = Residence_type.objects.all()
facilityList = Facility.objects.all()
With
residenceList = Residence.objects.values()
typeList = Residence_type.objects.values()
facilityList = Facility.objects.values()
Upvotes: 1