Здравствуйте. Я создаю блог, в котором пользователи могут публиковать и видеть другие сообщения. Я пытаюсь просмотреть все сообщения и форму создания сообщения на одной странице, но это не работает. Дизайн, который я пытаюсь реализовать, похож на форму поста Facebook в качестве примера. Ниже приведены коды для моего вида, URL и шаблона.
URL:
path('', views.PostCreateView.as_view(), name='post-create'),
path('',views.PostListView.as_view(), name='home'),
мой дом. html:
{% extends "home/base.html" %}
{% block content %}
<form id="login_form" action="{% url 'home:post-create' %}" method="POST">
<div class="row">
<div col-sm-3>
<img class="rounded-circle article-img" src="{{ user.image }}">
</div>
<div class="col-lg-5">
{% csrf_token %}
{{ form.as_p}}
<div class="py-3 col-sm-4">
<input type="submit" name="" class="form-control" value="Post">
</div>
</div>
</div>
</form>
{% for post in posts %}
<article class="media content-section">
<img class="rounded-circle article-img" src="{{ post.author.profile.image.url }}">
<div class="media-body">
<div class="article-metadata">
<a class="mr-2" href="#">{{ post.author }}</a>
{% if post.author == user %}
<div class="mr-auto">
<a class="btn btn-secondary btn-sm mx-1 mt-1 mb-1" href="{% url 'post-update' post.id %}">Update</a>
<a class="btn btn-danger btn-sm mt-1 mb-1" href="{% url 'post-delete' post.id %}">Delete</a>
</div>
{% endif %}
<small class="text-muted">{{ post.date_posted|date:"F d, Y" }}</small>
</div>
<h2><a class="article-title" href="{% url 'home:post-detail' post.id %}">{{ post.title }}</a></h2>
<p class="article-content">{{ post.content }}</p>
</div>
</article>
{% endfor %}
{% endblock content %}
и мой view.py :
class PostCreateView(LoginRequiredMixin, CreateView):
login_url='main:user_login'
permission_denied_message = "Please login before continuing"
model = Post
template_name = 'home/home.html'
fields = ['title', 'content']
def form_valid(self, form):
form.instance.author = self.request.user
return super().form_valid(form)