尝试在django中保存表单时出错

wrrgggsh  于 2023-01-06  发布在  Go
关注(0)|答案(1)|浏览(251)

我是django的新手,我正在做一个项目,用户从frontend填写表单,数据保存到一个gig模型中,其中writer从profile外键扩展。
ValueError at /seller_profile/由于数据未验证,无法创建Gig。
这里是models.py:

class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    avatar = models.ImageField(default='avatar.jpg', null=True, blank=True)
    about = models.CharField(max_length=100)

    def __str__(self):
        return self.user.username

class Gig(models.Model):
    writer = models.ForeignKey(Profile, on_delete = models.CASCADE, null=False, blank=False)
    category = models.ForeignKey('Category', on_delete = models.CASCADE, null=False, blank=False)
    title = models.CharField(max_length=500, null=True, blank=True)
    description = models.CharField(max_length=500, null=True, blank=True)
    image = models.ImageField(null=False, blank=False)
    gig_id = models.UUIDField(default=uuid.uuid4, primary_key=True, unique=True, editable=False)
    created = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.title

Views.py:

def createGig(request):
    gig = request.user.profile 
    form = CreateGigForm()
    if request.method == 'POST':
        form = CreateGigForm(request.POST, request.FILES)
        if form.is_valid:
            gig = form.save(commit=False)
            gig.writer = gig 
            gig.save()
            messages.info(request, 'Profile Succesfully Created')
            return redirect('create')
        else:
            messages.error(request, 'Gig Not Created! Try Again Later')
             
    context = {'form':form}
    return render(request, 'starter/create_gig.html', context)

下面是错误消息的屏幕截图:Error message screenshot

xytpbqjk

xytpbqjk1#

我找到了解决这个问题的方法。问题是检查表单是否有效,有一个缺少括号的错误。if form.is_valid:应该是if form.is_valid:

相关问题