繁体   English   中英

Django: AttributeError: 'User' object 没有属性 'get'

[英]Django: AttributeError: 'User' object has no attribute 'get'

我收到AttributeError: 'User' object has no attribute 'get' in Django,我正在尝试获取用户最喜欢的电影类型。 我的表格如下所示:

class GenresForm(forms.ModelForm):
   firstGenre = forms.CharField(label="What is your favorite genre?", widget=forms.Select(choices=GENRE_CHOICES))
   secondGenre = forms.CharField(label="What is your second favorite genre?", widget=forms.Select(choices=GENRE_CHOICES))
   thirdGenre = forms.CharField(label="What is your third favorite genre?", widget=forms.Select(choices=GENRE_CHOICES))

class Meta:
    model = Favorites
    fields = ["firstGenre", "secondGenre", "thirdGenre"]

我的观点:

def genres(request):
  user = request.user
  if request.method == "POST": 
      form = GenresForm(request.POST) 
      if form.is_valid():
          genres = form.save(commit=False)
          genres.user = request.user
          genres.save() 
          return redirect("/home") 
  else: 
      form = GenresForm(request.user) 
  return render(request, 'core/genres.html', {"form":form}) 

和我的 Model

class Favorites(models.Model):
  user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
  firstGenre = models.CharField(max_length=50)
  secondGenre = models.CharField(max_length=50)
  thirdGenre = models.CharField(max_length=50)

我不认为你需要request.user的形式

else: 
      form = GenresForm(request.user) 

将其更改为

else: 
      form = GenresForm()

因为你 r 没有用用户初始化表单。 因为没有代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM