Это мои модели:
class PersoonGegevens(models.Model):
# Voornaam en achternaam
voornaam = models.CharField(max_length=265,)
achternaam = models.CharField(max_length=265)
#username
user = models.OneToOneField(User, on_delete=models.CASCADE)
class inkomen(models.Model):
pg = models.ForeignKey(PersoonGegevens, on_delete=models.CASCADE)
inkomenfield = models.CharField(max_length=100)
Это форма:
class inkomenForm(forms.ModelForm):
class Meta():
model = inkomen
fields = ('inkomenfield',)
Это мое мнение:
def tijdelijk(request):
#User id
user = request.user.id
if request.method == 'POST':
incoming = inkomenForm(data=request.POST)
if incoming.is_valid():
incoming.save()
return HttpResponse("saved")
else:
x = incoming.errors
print (x)
return HttpResponseRedirect('/tijdelijk')
else:
incoming = inkomenForm()
return render(request, 'index/tijdelijkeindex.html', {'inkomen':incoming})
Я пробовал:
incoming.save(commit=False)
incoming.pg = user
incoming.save
также читал документацию по встроенным формам django. Но я действительно не получаю
Итак, я получаю следующую ошибку: (ограничение NOT NULL не удалось), и я знаю, что это происходит, потому что мне нужно назначить pg.id, и я знаю, что могу сделать это, добавив поле в form.py и позвольте пользователю выбрать идентификатор. Но на самом деле я хочу, чтобы pg = зарегистрированный пользователь.