首先去构建一个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。
感谢任何帮助
答案 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)