NOT NULL约束失败:campgrounds\u campground.author\u id

2024-05-15 07:40:58 发布

您现在位置:Python中文网/ 问答频道 /正文

首先要做的是单独开发一个Django应用程序

我建立了一个用户模型如下

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吗?我在create视图的视图上有LoginRequiredMixin

感谢您的帮助


Tags: 用户name模型selfauthreturnmodelsdef
2条回答

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

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

你的密码很好。当您刚刚创建了新模型Campground时,没有对象Campground的现有用户可能会出现问题。我记得要通过登录到Django的管理员来解决这个问题,并为任何没有Campground的用户手动创建一个Campground。或者,您可以尝试删除该用户,然后再次进行迁移

希望这有帮助

干杯 亨利

相关问题 更多 >