gpt4 book ai didi

Django No Pet 匹配给定的查询

转载 作者:行者123 更新时间:2023-12-04 05:08:36 24 4
gpt4 key购买 nike

我有一个简单的宠物应用程序。

该应用程序显示所有宠物商店以及当您单击宠物商店时。你会看到所有的宠物名字,图片。

问题是在我创建了第一个宠物和其他宠物之后。该模板不会更新新的 pets 。所以,它只显示第一个宠物。

所以当我删除第一个 pet 时。它显示页面未找到 (404) 即使 。我向商店添加了新宠物。

我尝试在模板中使用 for 循环,但它显示了一个错误,我无法对其进行迭代,并且一个 friend 告诉我,当您仅呈现单个数据时不要使用 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

最佳答案

如果要显示 1 个以上的数据,则必须使用过滤器而不是 get_object_or_404。
如果您只想显示 1 个数据,您将使用 get_object_or_404。

def brazil(request , owner_id):
pets = Pet.objects.filter(owner_id=owner_id)
return render_to_response ('animal.html',{'pets':pets})


{% if pets %}
<ul>
{% for pet in pets %}
<li>
Pet = {{ pet.animal }}<br/>
description = {{pet.description}}<br/>
<img src="{{ pet.image.url }}">
</li>
{% endfor %}

</ul>
{% endif %}

关于Django No Pet 匹配给定的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15185161/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com