@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 }}, на их месте будет пустота. Что я делаю неправильно?
  • Вопрос задан
  • 886 просмотров
Решения вопроса 1
на странице ты запускаешь цикл
{% for article in posts %}
...
{% endfor %}


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


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

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

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

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