Django2 ничего не происходит, когда отправляете статью

У меня есть формы для публикации статьи в моем блоге Django2. Когда я запускаю сервер django, ошибки не возникает, но когда я публикую и отправляю статью в мои приложения frontEnd, ничего не происходит и не сохраняет никаких данных.

Любая помощь по этому вопросу будет принята с благодарностью!

Шаблон 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 ответ

Это начинается здесь: instance = form.save(commit=False)где вы не совершаете сохранение.

Дальше вниз у вас есть instance.save как если бы вы устанавливали поле модели, но не указывали значение.

Сделай эту линию instance.save() вместо.

Другие вопросы по тегам