Можно ли использовать этот код как первый, а не как второй?
def create_new(request):
if request.method == 'POST':
form = ArticleForm(request.POST)
form.id_author = request.user.id
if form.is_valid():
form.save()
return redirect('home')
return render(request, 'main/create_new.html')
def create_new(request):
if request.method == 'POST':
form = ArticleForm(request.POST)
if form.is_valid():
article = form.save(commit=False)
article.author = request.user
article.save()
return redirect('home')
return render(request, 'main/create_new.html')
Возможно ли заменить 2-ой код на первый? он показывает какую-то ошибку
Нет, сначала всегда нужно проверить, действительна ли форма или нет, затем после этого можно сохранить форму с помощью commit=False
, которая создает временный экземпляр, затем нужно присвоить любое значение этому экземпляру.
Второй подход правильный.