我正在尝试链接与用户关联的项目
class createItem(CreateView):
model=Item
fields = ['x','y','image']
def form_valid(self,form):
form.instance.user_name=self.request.user
return super().form_valid(form)
这是一个片段,我不明白为什么我们使用super().form_valid(form)
,我也对在self.request.user
中使用self有疑问,我是django的新手,如果有人帮助我,这将非常有帮助。
Super()
允许您访问和修改您的基类(class createItem(CreateView))
的方法。
因此,在您的示例中,您将登录的用户id插入到表单字段中,而在提交表单之前该字段是不存在的。
def form_valid
是一个方法,它基本上会问"表单字段是否有效?"如果答案是肯定的(它们是有效的),那么插入用户id作为一个字段。因此,您正在动态地修改类的默认行为。可以通过调用super来实现。
可能需要阅读更多关于继承的内容。