2012-10-31 46 views
0

好吧,我知道一千人问这个,但我都找过这个网站没有成功(也是谷歌)这是我的models.pyDjango的外键对象图像

VENUE_IMAGE_PATH = os.path.join('images', 'venue_profiles/%Y/%m/%d') 

class Venue(models.Model): 

    ..................... 
    name = models.CharField(max_length=100) 
    address = models.CharField(max_length=100) 
    city = models.CharField(max_length=100) 
    ........................... 

class VenueImage(models.Model): 
    venue = models.ForeignKey(Venue, related_name="venue") 
    image = models.ImageField(upload_to=VENUE_IMAGE_PATH, max_length=255) 

这是我的看法的.py

def list(request): 
    venues = Venue.objects.all() 
    images=VenueImage.objects.all() 

return render_to_response('venues/list.html', {'venues':venues,'images':images}, 
    context_instance = RequestContext(request)) 

这里是我的模板

{% for v in venues %} 

<a href='#'>{{v.name}}</a> 
<a href="{% url edit v.id %}" style="position:relative;left:10px;">edit</a> 

{% if images %} 
<img class='venue_image' src='images/venue_profiles/2012/10/25/{{images.url}}' 
    alt=''> 
    {% endif %} 
    {% endfor %} 

现在我已经试过{{images.images.url}}{{images.url}}{{MEDIA_URL}}images/venue_profiles/%Y/%m/%d/{{image.url}}。 我也试过{%for i in images %} {{i.url}} {% endfor %}。 我也试过没有这个'images/venue_profiles/2012/10/25'前缀,似乎没有任何工作。 有人可以帮我看看我做错了什么。

回答

1
# In models.py 

class Venue(models.Model): 
    .... 
    name = models.CharField(max_length=100) 
    .... 
    images = models.ForeignKey(VenueImage) 

class VenueImage(models.Model): 
    image = models.ImageField(upload_to=VENUE_IMAGE_PATH) 

# In views.py 

def list(request): 
    venues = Venue.objects.all() 
    return render(request, 
        'venues/list.html', 
        {'venues': venues'}) 

# In template 

{% for venue in venues %} 
<a href '#'>{{ venue.name }}</a> 
... 
{% for image in venue.images %} 
<img class='venue_image' src=''{{ image.url }}' alt=''> 
{% endfor %} 
{% endfor %}