我有一个简单的宠物应用程序。
该应用程序显示所有宠物商店,当您点击宠物商店时。你会看到所有的宠物名字,图片。
问题是在我创建了第一个宠物和其他宠物之后。该模板不会更新新的宠物。所以,它只显示第一个宠物。
所以当我删除第一个宠物时。它显示未找到页面 (404),即使 . 我在商店中添加了新宠物。
我尝试在模板中使用 for 循环,但它显示一个错误,我无法对其进行迭代,一位朋友告诉我,当您只呈现单个数据时不要使用 for 循环。
如何在商店展示更多宠物?
我认为问题出在我的animal.html 也是我的views.py
我的动物.html
{% if pet %}
<li>Pet = {{ pet.animal }}</li>
<li>description = {{pet.description}} </li>
<img src="{{ pet.image.url }}">
{% endif %}
我的商店.html
Sydney's Pet Store
{% if store %}
<ul>
{% for a in store %}
<li><a href ="{% url world:brazil a.id %}">{{ a.name }}</li>
{% endfor %}
</ul>
{% endif %}
我的观点.py
from pet.models import Store , Pet
from django.shortcuts import render_to_response ,get_object_or_404
def index(request):
store = Store.objects.all()
return render_to_response ('store.html',{'store':store})
def brazil(request , animal_id):
pet = get_object_or_404(Pet, pk=animal_id)
return render_to_response ('animal.html',{'pet':pet})
我的模型.py
from django.db import models
class Store(models.Model):
name = models.CharField(max_length = 20)
number = models.BigIntegerField()
address =models.CharField(max_length = 20)
def __unicode__(self):
return self.name
class Pet(models.Model):
animal = models.CharField(max_length =20)
description = models.TextField()
owner = models.ForeignKey(Store)
image = models.FileField(upload_to="images/")
def __unicode__(self):
return self.animal