1
You need to pass both request.POST
and request.FILES
to the form:
from django.shortcuts import get_object_or_404
def class_article_create(request, URLcodenumber):
if request.method == 'POST':
code_number = get_object_or_404(Classes, codenumber=URLcodenumber)
form = ArticleForm(request.POST, request.FILES)
if form.is_valid():
form.instance.codenumber = code_number
form.instance.pub_date = date.today()
form.save()
return HttpResponseRedirect(f'/class/{URLcodenumber}')
else:
form = ArticleForm()
return render(
request,
'blogpage/create_article.html',
{
'clsName': f'Параллель {URLcodenumber}',
'codenumber': URLcodenumber,
'form': form,
},
)
Note: Django’s
DateTimeField
[Django-doc]
has aauto_now_add=…
parameter [Django-doc]
to work with timestamps. This will automatically assign the current datetime
when creating the object, and mark it as non-editable (editable=False
), such
that it does not appear inModelForm
s by default.
Source:stackexchange.com