通过外键和{%if/else%}创建Django图像
我试图访问通过ForeignKey分配给另一个模型的模型的ImageField 我的项目中有不同的动物应用程序,结构几乎相同,如下面的models.py。在我的项目登陆页面上,我想显示每个物种模型的最后3个条目,包括名称和图片。如果物种没有图片,我想显示农场的ImageField,它通过ForeignKey连接到我的物种 cows/models.py Views.py home.html 到目前为止,我没有收到任何错误消息,但我也没有看到农场图像。我肯定我在home.html中弄错了什么。另一方面,我想我可能在我的观点中遗漏了一些东西,比如MyModel.objects.all通过外键和{%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中弄错了什么。另一方
我感谢你的每一个提示。你把事情搞得太复杂了。每头牛只有一个农场:你只需要直接访问它
{% 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 %}