2015-05-09 45 views
0

我有一个Django应用程序要显示跟踪到一个特定的库中的所有图像,但我得到的错误:“GalleryDetailsView1”对象有没有属性“画廊”外键在查看详情

型号

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() 

模板:gallery_details1

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

{% block content %} 


{% for i in images1 %} 

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


{% endblock %} 

{% block content_bottom %}{% endblock content_bottom %} 

回答

0

你当你做你的要求要通过画廊pk莫名其妙。例如,当你的URL的一部分,然后从self.kwargs['gallery_pk']得到它(gallery_pk位将取决于你的实现)的观点:

url(r'^api/gallery/(?P<gallery_pk>\d+)/paintset$', GalleryDetailsView1.as_view()) 

然后,您可以返回

self.get_object().paint_set.all() 

为您查询集。

最后但并非最不重要的,related_name参数在gallery字段定义中应为"paint_set"

+0

好吧,现在我得到404错误 – mark

+0

对不起,我必须问这个,但你测试过你的旧网址或新的?另外,你确定存在主键的对象吗? – Ivan

+0

这是我的网址:'url(r'^ gallery1 /(?P \ d +)/ $',GalleryDetailsView1.as_view(),name =“gallery_details1”),' – mark