2016-10-14 28 views
-1

我有以下型号:访问外键图像

class Car(models.Model): 
    # some fields 

class CarPhotos(models.Model): 
    image = models.ImageField(upload_to='somewhere') 
    car = models.ForeignKey(Car) 

在views.py:

def car_list(request): 
    cars = Car.objects.all() 
    return render(request, 'borsa/car_list.html', {'cars': cars}) 

在car_list.html:

{% for car in cars %} 
    <a href="car/{{ car.pk }}/view/"> 
     <img class="media-object tmbpic" src="{{ car.carphotos_set.all.0.image.url }}" alt="kola"> 
    </a> 

第一种方法我我曾经使用过的是使用内联的formsets,但我不知道如何访问图像。你能指点我如何根据车对象访问图像的正确方向吗?我的意思是每辆车都必须有几张图片,我只需要在列表视图中显示第一张图片,但是我需要在详细信息视图中显示所有图片。

+0

这似乎正是你所做的。究竟是什么问题? –

+0

我不知道那些与formset有什么关系 - 你不会在这里使用它们,我无法想象它们为什么会相关。 –

+0

问题是我无法访问所有的图像,因为我每个实例上传多个图像。我已经提到过,我已经使用内联窗体来在管理区域添加多个图像。我完全困惑,因为我已经改变了几次代码。 –

回答

0

要显示所有这些,你需要做的是这样的:

{% for car in cars %} 
    {% for photo in car.carphotos_set.all %} 
     <img src="{{ photo.image.url }}"> 
    {% endfor %} 
{% endfor %} 

所以通过汽车循环,通过每辆车的影像,然后窝环。