#python #django
#питон #django
Вопрос:
У меня есть следующие модели:
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>
Первый метод, который я использовал, заключался в использовании встроенных наборов форм, но я понятия не имел, как получить доступ к изображениям. Не могли бы вы, пожалуйста, указать мне правильное направление того, как получить доступ к изображениям в соответствии с автомобильными объектами? Я имею в виду, что у каждого автомобиля должно быть несколько изображений, и мне нужно отобразить только первое из них в виде списка, но затем мне нужно отобразить их все в подробном виде.
Комментарии:
1. Похоже, это именно то, что вы сделали. В чем, собственно, проблема?
2. И я не знаю, какое отношение это имеет к наборам форм — вы их здесь не используете, и я не могу себе представить, почему они будут актуальны.
3. Проблема в том, что я не могу получить доступ ко всем изображениям, поскольку я загружаю несколько изображений на экземпляр. Я уже упоминал, что использовал встроенные наборы форм для добавления нескольких изображений в область администрирования. Я совершенно сбит с толку, поскольку несколько раз менял свой код.
Ответ №1:
Чтобы отобразить их все, вам нужно сделать что-то вроде:
{% for car in cars %}
{% for photo in car.carphotos_set.all %}
<img src="{{ photo.image.url }}">
{% endfor %}
{% endfor %}
Итак, перебирайте автомобили, затем перебирайте изображения для каждого автомобиля.