"Foreign key not available on object"(在对象上无法使用外键)
"Foreign key not available on object"(在对象上无法使用外键)
非常初级的问题困扰着我。我有一个问题无法在模板中显示外键ArtWorkImages,所以我想在视图中调试它,但外键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/")
视图:
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 %}
-
- {% for artwork in artworks %}
- {{ artwork.body}}
{% for image in artwork.images_set.all %} {% endfor %} {% endfor %}
{% else %}
No artworks are available.
{% endif %}
admin 更改状态以发布 2023年5月21日
您在ForeignKey
字段上定义了一个related_name
,您需要使用它来跟踪关系。
将:
images = artwork.artworkimage_set.all()
替换为:
images = artwork.images.all()