非常非常初学者的问题让我困惑。我在模板中显示外键 ArtWorkImages 时遇到问题,因此我想在 View 中对其进行调试,但外键 ArtworkImage 在 Artwork 上不可用:
我的模型:
from django.db import models
class Artwork(models.Model):
title = models.CharField(max_length=200)
body = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)
def __unicode__(self):
return self.title
class ArtworkImage(models.Model):
property = models.ForeignKey(Artwork, related_name='images')
image = models.ImageField(upload_to = "images/")
View :
from django.shortcuts import render
from erikheide.models import Artwork
from erikheide.models import ArtworkImage
def index(request):
artworks = Artwork.objects.all()[:5]
artwork = artworks[0]
images = artwork.artworkimage_set.all()
context = {'latest_poll_list': artworks}
return render(request, 'index.html', context)
错误:
> Traceback (most recent call last): File
> "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py",
> line 115, in get_response
> response = callback(request, *callback_args, **callback_kwargs) File "/home/fhp/Hentede filer/tastypie/django15/erikheide/views.py",
> line 13, in index
> images = artwork.artworkimage_set.all() AttributeError: 'Artwork' object has no attribute 'artworkimage_set'
模板不起作用(没有出现图像)
{% if artworks %}
<ul>
{% for artwork in artworks %}
<li><a href="{{ artwork.title }}/">{{ artwork.body}}</a></li>
{% for image in artwork.images_set.all %}
<img src="{{ image.image.url }}">
{% endfor %}
{% endfor %}
</ul>
{% else %}
<p>No artworks are available.</p>
{% endif %}
最佳答案
您已经定义了related_name
在 ForeignKey
字段上,您需要使用它来遵循关系。
替换:
images = artwork.artworkimage_set.all()
与:
images = artwork.images.all()
关于django - 外键在对象上不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23569990/