Django:NOT NULL 约束失败:course_courserating.user_id

Django: NOT NULL constraint failed: course_courserating.user_id

我正在尝试创建一个用户可以对课程进行评论和评分的逻辑,我的 views.py 中的逻辑看起来不错,但我一直收到此错误 NOT NULL constraint failed: course_courserating.user_id 我删除了一些 null=True 来自我的模型,但它仍然显示错误。

views.py

if request.method == "POST":
        form = CourseRatingForm(request.POST)
        if form.is_valid():
            rating_form = form.save(commit=False)
            user = request.user
            course = course
            rating_form.save()
            messages.success(request, f'You review was sent successfully!')
            return redirect("course:course-detail", course.slug)
    else:
        form = CourseRatingForm

models.py

class Course(models.Model):
    course_title = models.CharField(max_length=10000)
    slug = models.SlugField(unique=True)


class CourseRating(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    course = models.ForeignKey(Course, on_delete=models.CASCADE, null=True)
    rating = models.CharField(max_length=1000, choices=USER_COURSE_RATING)
    review = models.TextField()
    date = models.DateTimeField(auto_now_add=True)
    active = models.BooleanField(default=False)
    
    def __str__(self):
        return f"{self.course.course_title} - {self.rating}"

您需要将其分配给 CourseRating 对象,因此:

if request.method == 'POST':
    form = CourseRatingForm(request.POST, request.FILES)
    if form.is_valid():
        form.instance.user = request.user
        form.instance.course = course
        form.save()
        messages.success(request, f'You review was sent successfully!')
        return redirect('course:course-detail', course.slug)
else:
    form = CourseRatingForm()