Что мне нужно вписать в форме action=“”

116
06 марта 2021, 21:10

Есть Функция и шаблон для добовления комеентарив но она не работает подозреваю что проблемма в action или в том что функция GetComments не обрабатываеться

views.py

from django.http import HttpResponseRedirect
from django.shortcuts import render
from django.views.generic import ListView, DetailView
from .forms import CommentForm
from .models import CommentModel, Articles

class ArticlesList(ListView):
    model = Articles
    template_name = 'news/posts.html'

class ArticleDetail(DetailView):
    model = Articles
    template_name = 'news/post.html'
    def GetComments(request):
        if request.method == 'POST':
            form = CommentForm(request.POST)
            if form.is_valid():
                # Сохранение формы
                form.save()
                # Редирект на ту же страницу
                return HttpResponseRedirect(request.path_info)
        else:
        # метод GET
            form = CommentForm()
            # Получение всех имен из БД.
            comm = CommentModel.objects.all()
        # И добавляем names в контекст, чтобы плучить к ним доступ в шаблоне
        return render(request, 'news/post.html', {'form': form, 'comments': comm})

post.html

{% extends "ShapeHtml/wrapper.html" %}

{% block content %}
    <div class="panel panel-default">
      <div class="panel-heading">
        <h1 class=" text-info">{{object.title}}</h1>
      </div>
      <div class="panel-body">
        <p> {{object.post|safe|linebreaks}}  </p>
        <h3 align="right" class=" text-info"> Опубликованно: {{articles.date|date:"d-m-Y в H:i"}}</h3>
    </div>
        <h4>Comments</h4>

    <form action="" method="post">
      {% csrf_token %}
      {% if comm %}
        {% for comm in comments %}
          {{ comm.WhoAreYou }} <br>
        {% endfor %}
      {% endif %}
      {{ form }}
      <input type="submit" value="Submit">
    </form>
{% endblock %}

models.py

from django.db import models
class Articles(models.Model):
    title = models.CharField(max_length= 200)
    post = models.TextField()
    date = models.DateTimeField()
    img = models.ImageField(upload_to='', default="default_value")
    def __str__(self):
        return self.title

class CommentModel(models.Model):
    WhoAreYou = models.CharField(max_length=100)

forms.py

from django.forms import ModelForm
from .models import CommentModel

class CommentForm(ModelForm):
    class Meta:
        model = CommentModel
        fields = ('WhoAreYou',)
Answer 1

В action записывается имя файла-обработчика. После сабмита формы данные из неё будут отправлены указанным методом в этот файл. https://www.w3schools.com/tags/att_form_action.asp

READ ALSO
Чем заменить *swf

Чем заменить *swf

На старом сайте есть шапка, баннер сделан в формате swf у большинства браузеров Flash отключен, то есть "Нажмите чтобы показать содержимое flash"...

165
Не передаются параметры в метод POST

Не передаются параметры в метод POST

Нужна помощь: В Django при обработке следующего когда viewspy:

140
Работа с inline-block

Работа с inline-block

Как можно задать максимальное количество блоков в линии в этом коде, что бы не выполнялся перенос относительно ширины?:

163
Как сверстать чекбокс?

Как сверстать чекбокс?

как сверстать такое? я сделала что-то похожее, но что-то не работает

156