NOT NULL约束失败:campgrounds_campground.author_id

时间:2017-09-18 21:40:22

标签: python django

首先去构建一个Django app solo。

我已按如下方式设置用户模型

class User(auth.models.User):

    def __str__(self):
        return self.username

那里的一切都很好。然后,我创建了一个露营地模型

class Campground(models.Model):
    author = models.ForeignKey('auth.User' , related_name='submitted_campgrounds')
    name = models.CharField(max_length=128, blank=False, unique=True)
    image = models.URLField(blank=False)
    description = models.TextField()

    def __str__(self):
        return self.name

    def get_absolute_url(self):
        return reverse('campgrounds:single', kwargs={'pk':self.pk})

修改

查看代码

class CreateCampground(LoginRequiredMixin,generic.CreateView):
    fields = ('name', 'image', 'description')
    model = Campground

表单来自CreateView。

我在提交表单以创建新露营地时收到错误。

发现从登录用户那里获取用户ID?我在创建视图的视图上有LoginRequiredMixin。

感谢任何帮助

2 个答案:

答案 0 :(得分:0)

你的代码接缝没问题。您刚刚创建新模型Campground时,现有用户可能存在没有对象Campground的问题。我记得通过登录Django的管理员来解决这个问题,并为没有营地的任何用户手动创建一个营地。或者,您可以尝试删除该用户,并再次进行移动。

希望得到这个帮助。

干杯 亨利

答案 1 :(得分:0)

通过将此添加到我的CreateCampground视图

来解决
def form_valid(self, form):
    form.instance.author = self.request.user
    return super(CreateCampground, self).form_valid(form)