django - 外键在对象上不可用

标签 django

非常非常初学者的问题让我困惑。我在模板中显示外键 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_nameForeignKey 字段上,您需要使用它来遵循关系。

替换:

images = artwork.artworkimage_set.all()

与:

images = artwork.images.all()

另请参阅:What is `related_name` used for in Django?

关于django - 外键在对象上不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23569990/

相关文章:

python - 与 python 一起四舍五入

python - django urlconf 的奇怪警告

python - 为什么这个记录器不创建 Sentry 事件?

python - “不同”条目仅用于使用 Django 创建 sitemap.xml 文件 (1.5.4)

python - 如何解决 celery 文件中带有关键字参数命名空间 ='"CELERY 错误的 celery worker 配置

有 2 种语言的 Django 网站

python - 上传内容为空的文件

python - 如何在 python-django 中水平查看元素

python - 使用结构进行 django 部署 - TypeError : prepare_deployment() takes exactly 1 argument (0 given)

python - 如何在 Python/Django 中将此持续时间转换为天/小时/分钟/秒?