(django) Внешний ключ не записывается и получает ошибку целостности

Я пытаюсь создать проект на python с django для записи имени пользователя (активной сессии), quizid, questionid, studentanswer в базу данных mysql, но получаю ошибку целостности > "Column 'username_id' cannot be null"

models.py

class Quiz(models.Model):
questionid = models.IntegerField(null=False)
quizid = models.AutoField(primary_key=True)
subjectname = models.CharField(max_length=50)
question = models.CharField(max_length=50)
correctanswer = models.CharField(max_length=50)
eqpoints = models.IntegerField()
student = models.ManyToManyField("self", through="StudentAnswer")
teacher = models.ManyToManyField(Teacher)

class StudentAnswer(models.Model):
username = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
questionid = models.ForeignKey(Quiz, on_delete=models.CASCADE, related_name='quiz_question')
quizid = models.ForeignKey(Quiz, on_delete=models.CASCADE, related_name='quiz_id')
studentanswer = models.CharField(max_length=50)

forms.py

class StudentAnswerForm(ModelForm):
questionid = forms.ModelChoiceField(widget=forms.Select(), queryset=Quiz.objects.only('questionid'))
studentanswer = forms.CharField(widget=forms.TextInput())
quizid = forms.ModelChoiceField(widget=forms.Select(), queryset=Quiz.objects.only('quizid'))

class Meta:
    model = StudentAnswer
    fields = ['quizid','questionid','studentanswer']
   

views.py

class AnswerQuiz(View):
template = 'ansQuiz.html'


def get(self, request):
    form = StudentAnswerForm()
    request.session['visits'] = int(request.session.get('visits', 0)) + 1
    quiz = Quiz.objects.all() #get data from all objects on Quiz model
    return render(request, self.template,{'quiz':quiz, 'form':form})

def post(self,request):


    if request.method == 'POST':
        form = StudentAnswerForm(request.POST)
        if form.is_valid():
            form.instance.user = request.user
            form.save()
    return render(request, self.template, {'form':form})
Вернуться на верх