Для вывода и обработки формы для комментариев в Django, вы можете использовать следующий подход.
1. Создайте модель для хранения комментариев:
from django.db import models class Comment(models.Model): name = models.CharField(max_length=100) email = models.EmailField() content = models.TextField() created_at = models.DateTimeField(auto_now_add=True)
2. Создайте форму для комментариев, наследующуюся от forms.ModelForm
:
from django import forms from .models import Comment class CommentForm(forms.ModelForm): class Meta: model = Comment fields = ('name', 'email', 'content')
3. Отобразите форму в шаблоне:
<form method="post" action="{% url 'comment_create' %}"> {% csrf_token %} {{ form.as_p }} <button type="submit">Submit</button> </form>
4. Создайте представление для обработки формы:
from django.shortcuts import render, redirect from .forms import CommentForm def comment_create(request): if request.method == 'POST': form = CommentForm(request.POST) if form.is_valid(): form.save() return redirect('comment_success') else: form = CommentForm() return render(request, 'comment_form.html', {'form': form})
5. Зарегистрируйте URL-адреса для вашего представления:
from django.urls import path from .views import comment_create urlpatterns = [ path('comment/create/', comment_create, name='comment_create'), path('comment/success/', comment_success, name='comment_success'), ]
6. Создайте шаблон для успешной отправки комментария:
<p>Thank you for your comment!</p>
Теперь, когда пользователь отправляет форму комментария, данные будут сохранены в базе данных и пользователь будет перенаправлен на страницу с сообщением об успешной отправке комментария.
Вы также можете добавить дополнительную логику, такую как валидацию формы, аутентификацию пользователя или обработку модерации комментариев, в зависимости от ваших потребностей.