通过外键和{%if/else%}创建Django图像

通过外键和{%if/else%}创建Django图像,django,django-models,django-templates,django-views,Django,Django Models,Django Templates,Django Views,我试图访问通过ForeignKey分配给另一个模型的模型的ImageField 我的项目中有不同的动物应用程序,结构几乎相同,如下面的models.py。在我的项目登陆页面上,我想显示每个物种模型的最后3个条目,包括名称和图片。如果物种没有图片,我想显示农场的ImageField,它通过ForeignKey连接到我的物种 cows/models.py Views.py home.html 到目前为止,我没有收到任何错误消息,但我也没有看到农场图像。我肯定我在home.html中弄错了什么。另一方

我试图访问通过ForeignKey分配给另一个模型的模型的ImageField

我的项目中有不同的动物应用程序,结构几乎相同,如下面的models.py。在我的项目登陆页面上,我想显示每个物种模型的最后3个条目,包括名称和图片。如果物种没有图片,我想显示农场的ImageField,它通过ForeignKey连接到我的物种

cows/models.py

Views.py

home.html

到目前为止,我没有收到任何错误消息,但我也没有看到农场图像。我肯定我在home.html中弄错了什么。另一方面,我想我可能在我的观点中遗漏了一些东西,比如MyModel.objects.all


我感谢你的每一个提示。

你把事情搞得太复杂了。每头牛只有一个农场:你只需要直接访问它

   {% else %}
       {% if cow.farm.farm_img %}
           <img src="{{ cow.farm.farm_img.url }}" alt="Mod" height="100">
       {% endif %}
   {% endif %}

如果您想显示某个特定农场的所有奶牛图像,那么您的代码在另一方面是正确的{%forcow in farm.cows\u set.all%}。顺便说一句,您将_set用于反向关系,而不是关系本身,它只是农场。啊,好的,在我的模型结构中是另一种方式。很高兴知道。谢谢
class HomeIndex(TemplateView):
    template_name = 'home.html'

    def get_context_data(self, **kwargs):
    context['chickens'] = Chicken.objects.order_by('-entry_date')[:3]
    context['cows'] = Cows.objects.order_by('-entry_date')[:3]
    context['cats'] = Cats.objects.order_by('-entry_date')[:3]

        return context
<….>
        {% for somecow in cows %}
        <div class="col-3" id="p1">
            <h2>{{ somecow.name }}</h2>
            <h2>{{ somecow.entry_date }}</h2>
            {% if somecow.cow_img %}
            <img src="{{ somecow.cow_img.url }}" alt="Mod" height="100">
            {% endif %}
        </div>
        {% endfor %}
<….>
<….>
 {% for somecow in cows %}
    <div class="col-3" id="p1">
     <h2>{{ somecow.name }}</h2>
     <h2>{{ somecow.entry_date }}</h2>

      {% if somecow.cow_img %}
          <img src="{{ somecow.cow_img.url }}" alt="Mod" height="100">
      {% else %}

           {% for farm in somecow.farm_set.all %}
               {% if farm.farm_img %}
               <img src="{{ farm.farm_img.url }}" alt="Mod" height="100">
               {% endif %}
          {% endfor %}
      {% endif %}
    </div>
{% endfor %}
<….>
   {% else %}
       {% if cow.farm.farm_img %}
           <img src="{{ cow.farm.farm_img.url }}" alt="Mod" height="100">
       {% endif %}
   {% endif %}