提交帖子后Django2表单什么都没有发生

时间:2018-07-22 08:55:59

标签: forms django-2.0

我有一些表格可以在我的博客Django2中发布文章。当我运行django服务器时,没有错误,但是当我在前端应用程序中发布并提交Article时,什么也没有发生,并且不会保存任何数据。

在此方面的任何帮助将不胜感谢!

模板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"),
]

谢谢。

1 个答案:

答案 0 :(得分:0)

它从instance = form.save(commit=False)开始,在这里您不提交保存。

再往下,您有instance.save,就好像您正在设置模型字段一样,但是没有赋值。

改为在instance.save()行。