Django формы для добавления новых элементов
У меня есть в views.py код для моего представления для добавления новых документов в базу данных:
def doc_creation(request):
# add_form = forms.DocAddForm(request.POST or None)
if request.method == 'POST':
add_form = forms.DocAddForm(data=request.POST)
if add_form.is_valid():
new_doc = add_form.save(commit=False)
rnd_nip=TestClass()
new_doc.doc_client_nip = rnd_nip.random_client_nip()
new_doc.added_by_2 = request.user
new_doc.save()
else:
add_form = forms.DocAddForm()
else:
add_form = forms.DocAddForm()
return render(request,'doc_new_2.html',{'add_form':add_form})
мой код модели:
class Doc(models.Model):
doc_client_nip = models.CharField(blank=False,null=False,max_length=100,validators=[MinLengthValidator(10)],primary_key=True)
doc_application_id = models.CharField(blank=False,null=True,max_length=100,validators=[MinLengthValidator(17)])
added_by_2 = models.ForeignKey(User, on_delete=models.CASCADE,null=True)
TestClass() с его методом random_client_nip() используется для генерации случайного значения этого поля
Проблема в том, что каждый раз, когда я пытаюсь отправить новую запись, в базу данных ничего не добавляется. страница перезагружается в пустую форму, но я не получаю никакой ошибки.
Что происходит? Проблема с полем added_by_2?
попробуйте следующее:
if add_form.is_valid():
new_doc = Doc(doc_application_id=add_form) # this line
rnd_nip = TestClass()
new_doc.doc_client_nip = rnd_nip.random_client_nip()
new_doc.added_by_2 = request.user
new_doc.save()