2012-06-15 2 views
11

몇 주 전부터 파이썬과 장고를 배우고 있습니다. 이 시점까지는 다른 사용자의 질문과 답변을 읽는 것으로 충분했습니다.하지만 이제는 내 첫 질문의 순간이 왔습니다.Django : 템플릿을 통해 ForeignKey로 연결된 데이터를 얻는 방법?

나는 최선을 다해서 내 문제를 설명하려고 노력할 것이다. 내 문제는 내가 질의를하거나 내가 원하는 데이터를 얻을 수 있다는 것입니다.

ForeignKey가 ForeignKey와 클래스 Entry에 연결된 Gallery에 연결된 Image 클래스의 첫 번째 객체의 URL을 가져 오려고합니다. 여기

지금까지 models.py

:

class BlogEntry(models.Model): 
    ... 
    title = models.CharField(max_length=100) 
    ... 

class Gallery(models.Model): 
    entry = models.ForeignKey('BlogEntry') 

class Image(models.Model): 
    gallery = models.ForeignKey('Gallery') 
    picture = models.ImageField(upload_to='img') 

보기 :

def view(request): 
    return render_to_response('mainview.html', { 
    'entryquery': BlogEntry.objects.all(), 
    } 
) 

[템플릿 :

{% for item in entryquery %} 
    <h1>{{ item.title }}</h1> 
    <img src="{{ item.WHAT TO ENTER HERE? :) }}" /> 
{% endfor %} 

내가 원하는 것을 분명하다? 누군가가 나를 도울 수 있고 가능한 경우 간단한 설명을 쓸 수 있습니까?

인사 바스티안

답변

14

할 수 있습니다 access related members 단지 other attributes in a template처럼, 당신은 같은 것을 할 수 있습니다 : item.gallery_set.all.0.image_set.all.0.picture.img합니다. 그러나, 당신은 단지 당신은 외국 키 related_name을 추가 할 필요가

+0

답장을 보내 주셔서 감사합니다. :). 나는이 코드 라인을 정확히 이해하지 못한다. 관련 회원에게 액세스 할 수있는 문서에 대한 링크를 제공 할 수 있습니까? 장고 문서 페이지에서 뭔가를 찾지 못했습니다. – user1459531

+0

예, 링크를 추가했습니다. 희망이 도움이됩니다! – cberner

+0

고맙습니다, 고맙습니다, 고마워요! :) – user1459531

0
class BlogEntry(models.Model): 
    ... 
    title = models.CharField(max_length=100) 
    ... 

class Gallery(models.Model): 
    entry = models.ForeignKey('BlogEntry',related_name="galleries") 

class Image(models.Model): 
    gallery = models.ForeignKey('Gallery',related_name='images') 
    picture = models.ImageField(upload_to='img') 

같은 item.first_image 또는 뭔가를 할 수 있도록 고개를 적절한 사진을 반환 블로그 항목에 대한 방법을 정의하는 것이 더 쉬울 수 있습니다 갤러리 모델 및 템플릿보기 :

{% for g in blogentry.galleries.all %} 
    {{g.name}} 
     {%for i in g.images.all %} 
      <img src="{{i.picture.url}}">{{i.picture}}</img> 
     {% endfor %} 
{% endfor %}