Задать вопрос
@Ozrae

Как сделать post create функцию в django?

У меня есть jumbotron html элемент и снизу от него карточки. Мне нужно сделать так чтобы когда ты создаешь пост он размещался в jumbotron и при создании еще одного поста будет смещён вниз в первую карточку, то есть сортировка от нового к старому.
Вот мой models.py:
class Post(models.Model):
    title = models.CharField(max_length=65)
    text = models.CharField(max_length=150)
    date = models.DateField(blank='true', auto_now_add=True)
    image = models.FileField(blank='true')
    tag = models.CharField(max_length=50, blank='true')
    likes = models.IntegerField(blank=True, default='0')
    comm = models.IntegerField(blank=True, default='0')
    views = models.IntegerField(blank=True, default='0')


Мой views.py:
def posts_list(request):
    posts = Post.objects.all().order_by('date')
    return render(request, 'blog/index.html', {'posts': posts})


И html:
{% block content %}
                {% for article in posts %}

                <div class='new'>            
                    <div class='new-post'>
                        <ul class='new-post-status'>
                            <li><h4>date</h4></li>
                            <li><h5>{{ post.likes }}</h5></li>
                        </ul>
                        <div class='new-post-description'>
                            <h1>{{ Post.title }}</h1>
                            <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Inventore, alias.</p>
                            <a>Читать</a>
                        </div>
                    </div>
                    <img class='new-img' src='../../../static/images/1Statya_3.png'>
                </div>

                <div class='content'>
                    <div class='content-nav'>
                        <p href="#">Другие статьи</p>
                        <a href="#">FILTERS</a>
                    </div>
                
        
            <div class='cards-container'>

                <div class='card'>
                    <p class='pub-date'>date</p>
                    <img class='card-img' src='../../../static/images/1Statya_2.png'>
                    <p class='card-tag'>tag</p>
                    <p class='card-text'>title</p>
                    <div class='statistics'>
                        <img class='like-img' src='../../../static/images/Vector.png'>
                        <p class='likes-count'>{{ post.likes }}</p>
                        <img class='comment-img' src='../../../static/images/Vector (1).png'>
                        <p class='comments-count'>10</p>
                        <img class='view-img' src='../../../static/images/Vector (2).png'>
                        <p class='views-count'>10</p>
                    </div>
                </div>
            </div>
        </div>
                {% endfor %}
        {% endblock %}


Я создаю посты, но их размещение на сайте не работает, если вписывать переменные моделей типа {{ post.title }}, на их месте будет пустота. Что я делаю неправильно?
  • Вопрос задан
  • 894 просмотра
Подписаться 2 Простой Комментировать
Решения вопроса 1
на странице ты запускаешь цикл
{% for article in posts %}
...
{% endfor %}


в каждой итерации цикла доступен объект article - это и есть твой Post
{% for article in posts %}
  {{ article.title }}
{% endfor %}


А вот это что за дичь?
<h1>{{ Post.title }}</h1>
и
{{ post.likes }}

Откуда в шаблоне у тебя берётся объект Post и откуда объект post?
Ты их нигде не определил.
Есть только article
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
Strikt Москва
от 100 000 до 180 000 ₽
ITK academy Саратов
от 75 000 ₽
Sim-Ba Pay Санкт-Петербург
от 180 000 ₽