Django BaseManager.all() получил неожиданный аргумент ключевого слова 'Login'

У меня есть база данных:

class Users(models.Model):
     Login = models.OneToOneField(User, on_delete=models.CASCADE) <--- one to one field
     email = models.EmailField(max_length=255, unique=True, verbose_name='mail')
     balance = models.IntegerField(blank=False, verbose_name='balance')
     bonus = models.IntegerField(blank=True, verbose_name='count_bonus')

     def __str__(self):
         return str(self.Login.username)

     class Meta:
         verbose_name = 'Users'
         verbose_name_plural = 'Users'
         ordering = ['id']

и мне нужно запросить базу данных, чтобы получить все значения по request.user, но я получаю ошибку

BaseManager.all() получил неожиданный аргумент ключевого слова 'Login'

def Account(request):

    user = Users.objects.all(Login=request.user)

    context = {
        'title' : 'title',
        'user' : user,
    }
    return render(request=request, template_name='site/account.html', context=context)

Вы пытаетесь применить запрос к методу all(), что Django не позволяет, он просто используется для возврата всех объектов модели.

Что вам нужно, так это применить filter() к набору запросов. Обратите внимание, что применение filter() к объекту модели применяется к объектам all по умолчанию, и вам не нужно явно использовать all().

def Account(request):

  user = Users.objects.filter(Login=request.user)

  context = {
      'title' : 'title',
      'user' : user,
  }
  return render(request=request, template_name='site/account.html', context=context)

Вам следует использовать метод Queryset.filter вместо этого. Queryset.all просто дает вам queryset для извлечения всех записей.

...
user = Users.objects.filter(Login=request.user)
...

Однако, ваша модель Users имеет отношение один-к-одному с User, поэтому вы можете определить related_name, например,

class Users(models.Model):
     Login = models.OneToOneField(User, related_name="user_info", on_delete=models.CASCADE)
     ...

Тогда вы сможете получить доступ к связанному Users объекту таким образом

...
user = request.user.user_info
...
Вернуться на верх