2017-09-18 135 views
0

首先去构建一个Django应用程序独奏。NOT NULL约束失败:campgrounds_campground.author_id

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

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的到来。

我在提交表单以创建新的露营地时出现错误。

不是从登录的用户中获取用户标识吗?我在创建视图的视图上有LoginRequiredMixin。

任何帮助表示赞赏

+0

请添加代码在其中添加了'Campground'视图解决。 – FamousJameous

+0

显示您的表格和数据 –

+0

请添加编辑错误 –

回答

0

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

希望得到这个帮助。

干杯 亨利

0

加入这个我CreateCampground观点

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