我正在尝试创建一个视图,以便通过 FormView 将数据添加到我的数据库中。但是,我收到此无属性“用户”错误。我在这里找到了如何使用基于函数的视图摆脱它:MyModelForm' 对象没有属性 'user using django,但是我仍然不知道如何使用我的基于类的视图来做同样的事情。这是我的文件:视图.py:class CreateView(FormView): template_name = 'restaurant/create.html' form_class = CreateForm success_url = '' @method_decorator(login_required) def form_valid(self, form): obj = form.save(commit=False) obj.owner = self.request.user obj.save() return super().form_valid(form)形式.py:class CreateForm(forms.Form): name = forms.CharField() category = forms.CharField() capacity = forms.IntegerField() description = forms.CharField(widget=forms.Textarea)模型.py:from django.contrib.auth.models import User class Restaurant(models.Model): owner = models.ForeignKey(User, on_delete=models.CASCADE) name = models.CharField(max_length=200) category = models.CharField(max_length=200) description = models.TextField() capacity = models.IntegerField(default=0)回溯:http : //dpaste.com/2NTFS8H
1 回答

慕桂英546537
TA贡献1848条经验 获得超10个赞
你不应该使用method_decoratorwithform_valid方法。将您的观点更改为:
@method_decorator(login_required, name='dispatch')
class CreateView(FormView):
template_name = 'restaurant/create.html'
form_class = CreateForm
success_url = ''
def form_valid(self, form):
obj = form.save(commit=False)
obj.owner = self.request.user
obj.save()
return super().form_valid(form)
添加回答
举报
0/150
提交
取消