@AirronBark

Как совместить во views две models (Images и Products)?

как связать две модели(продукт и картинки) во views и соответственно вывести картинки в html?Да в будущем это будет отдельной формой, но сейчас для себя узнать.
Через админку заливаю по 3-4 фотографии к каждому проекту. А вывести одну отдельно к посту про проект не знаю как.
т.е. сейчас в models прописан следующий класс:
class Portfolio (models.Model):
    modeling='Modeling'
    books ='Books'
    engineering='Engineering'
    category_ch = [
        (modeling, 'Modeling'),
        (books, 'Books'),
        (engineering, 'Engineering'),
    ]
    category = models.CharField('Category',max_length=100,choices=category_ch, default=modeling)
    name = models.ForeignKey (Teams, related_name='maked', on_delete=models.PROTECT,blank=True)
    short_discription = models.CharField("Name of the work", max_length=200, blank=True)
    discription = models.TextField('Discription', blank=True)
    сustomer = models.CharField('Customer', max_length=100, default='Заказчик')
    created = models.DateTimeField('Date',auto_now_add=True)
    class Meta:
        verbose_name= 'Portfolio'
        verbose_name_plural = 'Portfolios'
    def __str__(self):
        return self.short_discription
    #def get_absolute_url(self):
        #return reversed ('shop:product_detail', args=[self.category.slug, self.slug]')

class Image(models.Model):
    image = models.ImageField('Picture of work', upload_to='products/%Y/%m/%d', blank=True)
    product = models.ForeignKey(Portfolio, default=None, related_name='image', on_delete=models.PROTECT)


views имеет следующее представление:
def portfolio_page(request):
    portfolio = Portfolio.objects.all()
    image_work= Image.objects.all()
    ctx = {
        'portfolio': portfolio,
        'image':image_work,
    }
    return render(request, 'mainApp/portfolio_page.html',ctx)

и html:
{% for el in portfolio %}
                    <div class="portfolio_db">
                        <h3> {{ el.short_discription }} </h3>
                        {% for i in image %}
                            <img class="photo_work" src="{{ i.image_work }}" alt="Oh, there is something wrong here" width="155px" height="215px"></img>
                        {% endfor %}
                        <h4> Maked by {{ el.name }} </h4>
                        <h4> Ordered by {{ el.сustomer }} </h4>
                    </div>
                {% endfor %}
  • Вопрос задан
  • 79 просмотров
Решения вопроса 1
Пригласить эксперта
Ответы на вопрос 1
@inFureal
В чем проблема сделать Image.objects.first()?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы