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()
вместо.