Python 视图详细信息中的外键

Python 视图详细信息中的外键,python,django,templates,views,django-queryset,Python,Django,Templates,Views,Django Queryset,我有一个django应用程序,您希望在其中显示跟踪到特定库的所有图像,但我得到错误:“GalleryDetailsView1”对象没有属性“gallery” 型号 class Gallery(models.Model): title = models.CharField(max_length=200) description = models.TextField() image = ThumbnailerImageField(upload_to='paint/%Y/%m/

我有一个django应用程序,您希望在其中显示跟踪到特定库的所有图像,但我得到错误:“GalleryDetailsView1”对象没有属性“gallery”

型号

class Gallery(models.Model):
    title = models.CharField(max_length=200)
    description = models.TextField()
    image = ThumbnailerImageField(upload_to='paint/%Y/%m/%d')

    class Meta:
        verbose_name = "Gallery"
        verbose_name_plural = " Galleries"

    def __unicode__(self):
        return self.title


class Paint(models.Model):
    AVAILABLE = "Available"
    NOT_AVAILABLE = "Not available"
    STATUS_PAINT = (
        (AVAILABLE, u"Dostępny"),
        (NOT_AVAILABLE, u"Nie dostępny")
    )
    title = models.CharField(max_length=200)
    gallery = models.ForeignKey(Gallery, related_name='paint_set')
    paint = ThumbnailerImageField(upload_to='paint/%Y/%m/%d')
    price = models.CharField(max_length=50, blank=True, null=True)
    status = models.CharField(choices=STATUS_PAINT, default=AVAILABLE, max_length=50)
视图

class GalleryList(generic.ListView):
    model = Gallery
    context_object_name = "list"
    template_name = "www/gallery_list.html"


class GalleryDetailsView1(generic.DetailView):
    context_object_name = "images1"
    template_name = "www/gallery_details1.html"

    def get_queryset(self):
        return Gallery.objects.get(pk=self.kwargs['pk']).paint_set.all()
模板:图库详细信息1

{% extends "base.html" %}
{% load thumbnail %}

{% block content %}


{% for i in images1 %}

{{ i.title }}
<hr>
{% endfor %}


{% endblock %}

{% block content_bottom %}{% endblock content_bottom %}
{%extends“base.html”%}
{%加载缩略图%}
{%block content%}
{images1%中的i为%1}
{{i.title}}

{%endfor%} {%endblock%} {%block content_bottom%}{%endblock content_bottom%}
当您提出请求时,您必须以某种方式通过gallery
pk
。例如,作为URL的一部分,然后从视图中的
self.kwargs['gallery\u pk']
获取它(gallery\u pk位将取决于您的实现):

url(r'^api/gallery/(?P<gallery_pk>\d+)/paintset$', GalleryDetailsView1.as_view())
作为您的查询集


最后但并非最不重要的一点是,gallery字段定义中的
相关\u name
参数应该是
“paint\u set”
,这样才能正常工作。

很抱歉,我不得不问这个问题,但您是使用旧url还是新url进行了测试?另外,您确定主键的对象存在吗?这是我的url:
url(r'^gallery1/(?P\d+)/$),GalleryDetailsView1.as_view(),name=“gallery_details1”),
测试时是否添加了尾部斜杠?我的输出:`找不到页面(404)请求方法:获取请求URL:引发者:www.views.GalleryDetailsView1未找到与查询匹配的图片`图片在应用程序中代表什么?
self.get_object().paint_set.all()