2017-11-26 1 views
2

내가 여기에 하나 개의 질문 이 내 코드
view.py django :이 경우 필터 옵션을 사용하는 방법은 무엇입니까?

class testView(ListView): 
    model = Photo 
    template_name = 'photo/photo_detail.html' 
    context_object_name = 'main_list' 

    def get_context_data(self, **kwargs): 
     context = super(testView, self).get_context_data(**kwargs) 
     context['extra_value'] = Album.objects.filter(Album__name=Photo.album.name) 
     return context 

및 model.py입니다

class Album(models.Model): 
    name = models.CharField(max_length=50) 
    description = models.CharField('One Line Description', max_length=100, blank= True) 
    owner = models.ForeignKey(User, null=True) 
    Category = models.ForeignKey(Categories, null=True) 
    price = models.CharField(max_length=20, null=True) 
    productInfo = models.CharField(max_length=50, null=True) 

    objects = models.Manager() 
    second_manager = SecondAlbumManager() 

    class Meta: 
     ordering = ['name'] 
     verbose_name = 'Album' 
     verbose_name_plural = 'Albums' 

    def __str__(self): 
     return self.name 

    def get_absolute_url(self): 
     return reverse('photo:album_detail', args=(self.id,)) 

@python_2_unicode_compatible 
class Photo(models.Model): 
     album = models.ForeignKey(Album) 
     title = models.CharField(max_length=50) 
     image = ThumbnailImageField(upload_to='photo/%Y/%m') 
     description = models.TextField('Photo Description', blank=True) 
     upload_date = models.DateTimeField('Upload Date', auto_now_add=True) 
     owner = models.ForeignKey(User, null=True) 

    class Meta: 
     ordering = ['title'] 
     verbose_name = 'Photo' 
     verbose_name_plural = 'Photos' 

    def __str__(self): 
     return self.title 

    def get_absolute_url(self): 
     return reverse('photo:test', args=(self.id,)) 

사진 객체가 외래 키 (앨범) 그래서, 나는 필터링 앨범 객체를 사용하려면 in template (photo_detail.html)

그러나 하나의 Photo 개체의 Album 외부 값을 Album__name과 비교하여 템플릿에 출력하고 싶습니다. Photo.album.name 부분을 변경하는 방법을 모르십시오. 저에게 알려주세요. 템플릿에

답변

0

당신이 할 수있는 간단한 사용 예를 들어 재산 album : 자세한 내용은

{% for photo in object_list %} 
    {{ photo.album.name }} created by {{ photo.album.user.username }} 
{% endfor %} 

읽기

+0

docs에 감사합니다! 질문 하나 더 드릴까요? .. –

+0

예를 들어, 내 템플릿 (w_cloth.html) url은 "url (r '^ test/(? P \ d +)/$', testView.as_view(), name = 'test' http://127.0.0.1:8000/photo/test/7/, 어떻게 템플릿에서 id = 7을 사용할 수 있습니까? id를 사용하여 현재 사진 객체를 distanguish하려는 경우 ex) {% if photo.album.name = = current.id url %} –

+0

도움이되어 주시면 기꺼이 도와 드리겠습니다. 두 번째 질문을 위해 다른 사람이 검색 할 수 있도록 해주는 것이 좋습니다. 가장 좋은 방법은 의견을 새로 작성하는 것입니다. 주석에서 읽기 쉽고 이해하기가 쉽습니다. . –

관련 문제