为了账号安全,请及时绑定邮箱和手机立即绑定

“CreateForm”对象在表单验证上没有​​“user”属性

“CreateForm”对象在表单验证上没有​​“user”属性

临摹微笑 2021-06-08 16:08:03
我正在尝试创建一个视图,以便通过 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)


查看完整回答
反对 回复 2021-06-15
  • 1 回答
  • 0 关注
  • 118 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号