向Django应用程序添加一个评论区表单可以通过以下步骤完成:
from django.db import models
class Comment(models.Model):
name = models.CharField(max_length=50)
email = models.EmailField()
content = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.name
这个评论模型包含了评论者的姓名、邮箱、评论内容和创建时间等字段。
from django.shortcuts import render, redirect
from .forms import CommentForm
def add_comment(request):
if request.method == 'POST':
form = CommentForm(request.POST)
if form.is_valid():
form.save()
return redirect('comments_list') # 评论提交成功后重定向到评论列表页面
else:
form = CommentForm()
return render(request, 'add_comment.html', {'form': form})
这个视图函数首先判断请求方法是否为POST,如果是则实例化评论表单并验证数据。如果表单数据有效,则保存评论并重定向到评论列表页面;如果请求方法不是POST,则返回一个空的评论表单给模板渲染。
from django import forms
from .models import Comment
class CommentForm(forms.ModelForm):
class Meta:
model = Comment
fields = ['name', 'email', 'content']
这个评论表单类基于评论模型,并指定了需要显示和验证的字段。
{% extends 'base.html' %}
{% block content %}
<h2>Add Comment</h2>
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Submit</button>
</form>
{% endblock %}
这个模板使用Django模板语言来渲染评论表单,包含一个POST请求的表单和一个提交按钮。
{% extends 'base.html' %}
{% block content %}
<h2>Comments</h2>
{% for comment in comments %}
<div>
<h3>{{ comment.name }}</h3>
<p>{{ comment.content }}</p>
<p>{{ comment.created_at }}</p>
</div>
{% empty %}
<p>No comments yet.</p>
{% endfor %}
{% endblock %}
这个模板使用Django模板语言遍历评论对象列表,并展示每个评论的姓名、内容和创建时间。
from django.urls import path
from .views import add_comment, comments_list
urlpatterns = [
path('add-comment/', add_comment, name='add_comment'),
path('comments/', comments_list, name='comments_list'),
]
这个URL路由配置将add-comment/映射到添加评论的视图函数,将comments/映射到评论列表的视图函数。
通过以上步骤,你就成功地向Django应用程序添加了一个评论区表单。用户可以填写评论表单并提交,评论数据将被保存,并可以在评论列表页面中展示。如果你使用腾讯云进行部署,可以考虑使用腾讯云的云服务器、对象存储、数据库、CDN等相关产品来支持你的Django应用程序的运行和存储需求。
领取专属 10元无门槛券
手把手带您无忧上云