Python 视图详细信息中的外键
我有一个django应用程序,您希望在其中显示跟踪到特定库的所有图像,但我得到错误:“GalleryDetailsView1”对象没有属性“gallery” 型号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/
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%}
当您提出请求时,您必须以某种方式通过gallerypk
。例如,作为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()