简体   繁体   English

AttributeError at /'QuerySet' 对象没有属性 'users'

[英]AttributeError at / 'QuerySet' object has no attribute 'users'

I don't know why I am getting this error I am new to Django I researched a lot but I didn't find an answer please when giving me the answer explain as much as you can I want to learn but if you don't want to no problem Thank you, This is my Views.py我不知道为什么我会收到这个错误我是 Django 的新手我研究了很多但我没有找到答案请在给我答案时尽可能多地解释我想学习但如果你不想没问题谢谢,这是我的Views.py

from django.views.generic import TemplateView
from django.shortcuts import render, redirect
from django.contrib.auth.models import User

from home.forms import HomeForm
from home.models import Post, Friend


class HomeView(TemplateView):
    template_name = 'home/home.html'

    def get(self, request):
        form = HomeForm()
        posts = Post.objects.all().order_by('-created')
        users = User.objects.exclude(id=request.user.id)
        friend = Friend.objects.filter(current_user=request.user)
        friends = friend.users.all()

        args = {
            'form': form, 'posts': posts, 'users': users, 'friends': friends
        }
        return render(request, self.template_name, args)

    def post(self, request):
        form = HomeForm(request.POST)
        if form.is_valid():
            post = form.save(commit=False)
            post.user = request.user
            post.save()

            text = form.cleaned_data['post']
            form = HomeForm()
            return redirect('home:home')

        args = {'form': form, 'text': text}
        return render(request, self.template_name, args)

def change_friends(request, operation, pk):
    friend = User.objects.get(pk=pk)
    if operation == 'add':
        Friend.make_friend(request.user, friend)
    elif operation == 'remove':
        Friend.lose_friend(request.user, friend)
    return redirect('home:home')

This is my models.py这是我的models.py

from django.db import models
from django.contrib.auth.models import User


class Post(models.Model):
    post = models.CharField(max_length=500)
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    created = models.DateTimeField(auto_now_add=True)
    updated = models.DateTimeField(auto_now=True)


class Friend(models.Model):
    users = models.ManyToManyField(User)
    current_user = models.ForeignKey(User, related_name='owner', null=True, on_delete=models.CASCADE)

    @classmethod
    def make_friend(cls, current_user, new_friend):
        friend, created = cls.objects.get_or_create(
            current_user=current_user
        )
        friend.users.add(new_friend)

    @classmethod
    def lose_friend(cls, current_user, new_friend):
        friend, created = cls.objects.get_or_create(
            current_user=current_user
        )
        friend.users.remove(new_friend)

Traceback 1追溯 1

Traceback (most recent call last):
  File "C:\Users\daghe\anaconda3\envs\env\lib\site-packages\django\core\handlers\exception.py", line 47,
 in inner
    response = get_response(request)
  File "C:\Users\daghe\anaconda3\envs\env\lib\site-packages\django\core\handlers\base.py", line 179, in

_get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "C:\Users\daghe\anaconda3\envs\env\lib\site-packages\django\views\generic\base.py", line 70, in v
iew
    return self.dispatch(request, *args, **kwargs)
  File "C:\Users\daghe\anaconda3\envs\env\lib\site-packages\django\views\generic\base.py", line 98, in d
ispatch
    return handler(request, *args, **kwargs)
  File "C:\Users\daghe\Desktop\Alone-Osama\home\views.py", line 17, in get
    friends = friend.users.all()
AttributeError: 'QuerySet' object has no attribute 'users'

this is my code if you see some cheap code excuse me :D如果你看到一些便宜的代码,这是我的代码,对不起:D

Traceback 2:追溯2:

Traceback (most recent call last):
  File "C:\Users\daghe\anaconda3\envs\env\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
    response = get_response(request)
  File "C:\Users\daghe\anaconda3\envs\env\lib\site-packages\django\core\handlers\base.py", line 179, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "C:\Users\daghe\anaconda3\envs\env\lib\site-packages\django\views\generic\base.py", line 70, in view
    return self.dispatch(request, *args, **kwargs)
  File "C:\Users\daghe\anaconda3\envs\env\lib\site-packages\django\views\generic\base.py", line 98, in dispatch
    return handler(request, *args, **kwargs)
  File "C:\Users\daghe\Desktop\Alone-Osama\home\views.py", line 25, in get
    return render(request, self.template_name, args)
  File "C:\Users\daghe\anaconda3\envs\env\lib\site-packages\django\shortcuts.py", line 19, in render
    content = loader.render_to_string(template_name, context, request, using=using)
  File "C:\Users\daghe\anaconda3\envs\env\lib\site-packages\django\template\loader.py", line 62, in render_to_string
    return template.render(context, request)
  File "C:\Users\daghe\anaconda3\envs\env\lib\site-packages\django\template\backends\django.py", line 61, in render
    return self.template.render(context)
  File "C:\Users\daghe\anaconda3\envs\env\lib\site-packages\django\template\base.py", line 170, in render
    return self._render(context)
  File "C:\Users\daghe\anaconda3\envs\env\lib\site-packages\django\template\base.py", line 162, in _render
    return self.nodelist.render(context)
  File "C:\Users\daghe\anaconda3\envs\env\lib\site-packages\django\template\base.py", line 938, in render
    bit = node.render_annotated(context)
  File "C:\Users\daghe\anaconda3\envs\env\lib\site-packages\django\template\base.py", line 905, in render_annotated
    return self.render(context)
  File "C:\Users\daghe\anaconda3\envs\env\lib\site-packages\django\template\loader_tags.py", line 150, in render
    return compiled_parent._render(context)
  File "C:\Users\daghe\anaconda3\envs\env\lib\site-packages\django\template\base.py", line 162, in _render
    return self.nodelist.render(context)
  File "C:\Users\daghe\anaconda3\envs\env\lib\site-packages\django\template\base.py", line 938, in render
    bit = node.render_annotated(context)
  File "C:\Users\daghe\anaconda3\envs\env\lib\site-packages\django\template\base.py", line 905, in render_annotated
    return self.render(context)
  File "C:\Users\daghe\anaconda3\envs\env\lib\site-packages\django\template\defaulttags.py", line 312, in render
    return nodelist.render(context)
  File "C:\Users\daghe\anaconda3\envs\env\lib\site-packages\django\template\base.py", line 938, in render
    bit = node.render_annotated(context)
  File "C:\Users\daghe\anaconda3\envs\env\lib\site-packages\django\template\base.py", line 905, in render_annotated
    return self.render(context)
  File "C:\Users\daghe\anaconda3\envs\env\lib\site-packages\django\template\defaulttags.py", line 446, in render
    url = reverse(view_name, args=args, kwargs=kwargs, current_app=current_app)
  File "C:\Users\daghe\anaconda3\envs\env\lib\site-packages\django\urls\base.py", line 87, in reverse
    return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))
  File "C:\Users\daghe\anaconda3\envs\env\lib\site-packages\django\urls\resolvers.py", line 685, in _reverse_with_prefix
    raise NoReverseMatch(msg)

Exception Type: NoReverseMatch at /
Exception Value: Reverse for 'create' not found. 'create' is not a valid view function or pattern name.

It's this line:这是这一行:

friends = friend.users.all()

You've forgotten that your model classes start with an upper case letter :)你忘记了你的模型类以大写字母开头:)

friends = Friend.users.all()

Should work ... Basically there is no model called friend and therefore it certainly has no user attribute!应该工作......基本上没有称为friend模型,因此它肯定没有user属性!

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

相关问题 django rest framework上的AttributeError QuerySet'对象没有属性'users - AttributeError on django rest framework QuerySet' object has no attribute 'users AttributeError:“ QuerySet”对象没有属性“ add” - AttributeError: 'QuerySet' object has no attribute 'add' AttributeError: 'QuerySet' 对象没有属性 'save' - AttributeError: 'QuerySet' object has no attribute 'save' AttributeError: 'QuerySet' object 没有属性 'requestedDate' - AttributeError: 'QuerySet' object has no attribute 'requestedDate' /addtowatchlist/5 处的 AttributeError:“QuerySet”object 没有属性“listings” - AttributeError at /addtowatchlist/5: 'QuerySet' object has no attribute 'listings' AttributeError:“ QuerySet”对象没有属性“ area” - AttributeError: 'QuerySet' object has no attribute 'area' AttributeError:“ QuerySet”对象没有属性“ requests” - AttributeError: 'QuerySet' object has no attribute 'requests' /product/7 'QuerySet' object 处的 AttributeError 没有属性 'category' - AttributeError at /product/7 'QuerySet' object has no attribute 'category' /orders/ 'QuerySet' object 处的 AttributeError 没有属性 'orderitem - AttributeError at /orders/ 'QuerySet' object has no attribute 'orderitem AttributeError: 'QuerySet' object 没有属性 'category' - AttributeError: 'QuerySet' object has no attribute 'category'
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM