Django 2 表单在提交 post 文章时没有任何反应
Django2 forms nothing happend when submit post article
我的博客 Django2 中有 Post 文章的表格。当我 运行 django 服务器没有错误,但是当我 Post 并在我的前端应用程序中提交文章时没有任何反应并且不保存任何数据。
如有任何帮助,我们将不胜感激!
模板HTML
<div class="create-article">
<h2>Create an Awesome New Articles</h2>
<form class="site-form" action="{% url 'articles:create' %}" method="POST" enctype="multipart/form-data">
{% csrf_token %}
{{ form }}
<input type="submit" value="Create">
</form>
</div>
forms.py
from django import forms
from . import models
class CreateArticle(forms.ModelForm):
class Meta:
model = models.Article
fields = ['title', 'body', 'slug', 'thumb']
views.py
def article_create(request):
if request.method == 'POST':
form = forms.CreateArticle(request.POST, request.FILES)
if form.is_valid():
# save article to db
instance = form.save(commit=False)
instance.author = request.user
instance.save
return redirect('articles:list')
else:
form = forms.CreateArticle()
return render(request, 'articles/article_create.html', {'form': form})
urls.py
from django.urls import path
from . import views
app_name = 'articles'
urlpatterns = [
path('', views.article_list, name="list"),
path('create/', views.article_create, name="create"),
path('<slug>/', views.article_detail, name="detail"),
]
谢谢。
它从这里开始:instance = form.save(commit=False)
,您不提交保存的地方。
再往下 instance.save
就好像您在设置模型字段一样,但没有给它赋值。
改为 instance.save()
。
我的博客 Django2 中有 Post 文章的表格。当我 运行 django 服务器没有错误,但是当我 Post 并在我的前端应用程序中提交文章时没有任何反应并且不保存任何数据。
如有任何帮助,我们将不胜感激!
模板HTML
<div class="create-article">
<h2>Create an Awesome New Articles</h2>
<form class="site-form" action="{% url 'articles:create' %}" method="POST" enctype="multipart/form-data">
{% csrf_token %}
{{ form }}
<input type="submit" value="Create">
</form>
</div>
forms.py
from django import forms
from . import models
class CreateArticle(forms.ModelForm):
class Meta:
model = models.Article
fields = ['title', 'body', 'slug', 'thumb']
views.py
def article_create(request):
if request.method == 'POST':
form = forms.CreateArticle(request.POST, request.FILES)
if form.is_valid():
# save article to db
instance = form.save(commit=False)
instance.author = request.user
instance.save
return redirect('articles:list')
else:
form = forms.CreateArticle()
return render(request, 'articles/article_create.html', {'form': form})
urls.py
from django.urls import path
from . import views
app_name = 'articles'
urlpatterns = [
path('', views.article_list, name="list"),
path('create/', views.article_create, name="create"),
path('<slug>/', views.article_detail, name="detail"),
]
谢谢。
它从这里开始:instance = form.save(commit=False)
,您不提交保存的地方。
再往下 instance.save
就好像您在设置模型字段一样,但没有给它赋值。
改为 instance.save()
。