Django форма на той же странице - PullRequest
0 голосов
/ 06 марта 2020

Здравствуйте. Я создаю блог, в котором пользователи могут публиковать и видеть другие сообщения. Я пытаюсь просмотреть все сообщения и форму создания сообщения на одной странице, но это не работает. Дизайн, который я пытаюсь реализовать, похож на форму поста 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)
...