Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django没有匹配给定查询的宠物_Django - Fatal编程技术网

Django没有匹配给定查询的宠物

Django没有匹配给定查询的宠物,django,Django,我有一个简单的宠物应用程序 当你点击宠物店时,应用程序会显示所有宠物店。你会看到所有的宠物名字,照片 问题是在我创建了第一个宠物和其他宠物之后。模板不会更新新宠物。因此,它只显示第一只宠物 所以当我删除第一只宠物时。它显示页面未找到(404),即使。我在商店里添了新宠物 我尝试在模板中使用for循环,但它显示了一个错误,我无法对其进行迭代,一位朋友告诉我,当您仅渲染单个数据时,不要使用for循环 我怎样才能在商店里展示更多的宠物 我想问题出在my animal.html和my views.py上

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

当你点击宠物店时,应用程序会显示所有宠物店。你会看到所有的宠物名字,照片

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

所以当我删除第一只宠物时。它显示页面未找到(404),即使。我在商店里添了新宠物

我尝试在模板中使用for循环,但它显示了一个错误,我无法对其进行迭代,一位朋友告诉我,当您仅渲染单个数据时,不要使用for循环

我怎样才能在商店里展示更多的宠物

我想问题出在my animal.html和my views.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})
my animal.html

 {% if pet %}
 <li>Pet = {{ pet.animal }}</li>
 <li>description = {{pet.description}} </li>

 <img src="{{ pet.image.url }}">
 {% endif %}
我的模特

 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

如果要显示多个数据,必须使用过滤器not get_object_或_404。 如果只想显示1个数据,则将使用get_object_或_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 %}
def巴西(请求,所有者id):
pets=Pet.objects.filter(owner\u id=owner\u id)
返回render_to_响应('animal.html',{'pets':pets})
{%if%}
    {宠物中宠物的百分比%}
  • 宠物={{Pet.animal}}
    description={{pet.description}}
  • {%endfor%}
{%endif%}
在视图中创建查询集(类似)-

然后在模板中迭代它-

{% for pet in pets %}
 <li>Pet = {{ pet.animal }}</li>
 <li>description = {{pet.description}} </li>
 <img src="{{ pet.image.url }}">
{% endfor %}
{%用于宠物中的宠物%}
  • 宠物={{Pet.animal}}
  • description={{pet.description}}
  • {%endfor%}

    查看以了解如何将想要的对象传递到模板

    在我的情况下,您会使用ManyToManyField还是ForeignKey?店主的ForeignKey当您单击商店时,您想显示该商店中的宠物列表,对吗?
     def brazil(request , animal_id):
        pets = Pet.objects.all()
        return render_to_response ('animal.html',{'pets':pets})
    
    {% for pet in pets %}
     <li>Pet = {{ pet.animal }}</li>
     <li>description = {{pet.description}} </li>
     <img src="{{ pet.image.url }}">
    {% endfor %}