📅  最后修改于: 2023-12-03 15:30:29.582000             🧑  作者: Mango
在前面的文章中,我们学习了如何在Django中创建应用程序,以及如何定义模型(Model),URL和视图(View)。在本文中,我们将继续构建该应用程序,添加更多的功能和视图。
在我们的应用程序中,我们将创建一个新页面,用于创建新的博客文章。我们需要定义一个新的URL,视图和模板。
打开blog/urls.py
文件,并向其中添加以下代码:
from django.urls import path
from . import views
urlpatterns = [
# ... 省略
path('article/new/', views.create_article, name='create_article'),
]
这将定义一个名为create_article
的视图。我们需要在后面创建此视图。
打开blog/views.py
文件并添加以下代码:
from django.shortcuts import render, redirect
from django.contrib.auth.decorators import login_required
from .forms import ArticleForm
@login_required(login_url='/login/')
def create_article(request):
if request.method == 'POST':
form = ArticleForm(request.POST)
if form.is_valid():
form.save()
return redirect('home')
else:
form = ArticleForm()
return render(request, 'blog/create_article.html', {'form': form})
此视图将接收一个名为'create_article'
的GET请求。如果请求方法是POST,则将创建一个新的文章。我们还需要指定表单(form)字段。
为该视图创建一个名为'create_article.html'
的模板。在blog/templates/blog/
下创建该文件,并添加以下代码:
{% extends 'blog/base.html' %}
{% block content %}
<h2>Create Article</h2>
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit" class="btn btn-primary">Create</button>
</form>
{% endblock %}
我们在此处定义了一个表单,并使用form.as_p
渲染每个表单字段。
在本文中,我们创建了一个新页面,用于创建新的博客文章。我们定义了新的URL,视图和模板,并介绍了表单字段和form.as_p
。下一篇文章,我们将添加评论功能。