Список объектов зарегистрированного текущего пользователя - PullRequest
1 голос
/ 15 марта 2020

Я хотел бы спросить, как я мог бы перечислить все объекты зарегистрированного текущего пользователя через представление на основе классов в django.

У меня есть два приложения в проекте. Один называется users, а другой - badminton.

users / models.py

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

class Profile(models.Model):
   user = models.OneToOneField(User, null=True, on_delete=models.CASCADE)
   name = models.CharField(max_length=200, null=True)

badminton / models.py

from django.db import models
from users import models as users_models 

class Player(models.Model):
    name = models.OneToOneField(users_models.Profile ,null=True, on_delete=models.CASCADE)
    matches_played = models.IntegerField(default=0, blank=True, null=True)

class Match(models.Model):
    player_home = models.OneToOneField(Player, null=True, on_delete= models.SET_NULL, related_name='player_home')
    player_away = models.OneToOneField(Player, null=True, on_delete= models.SET_NULL, related_name='player_away')

Как получить доступ ко всем совпадения зарегистрированного пользователя через набор запросов? Спасибо за вашу помощь!

1 Ответ

1 голос
/ 15 марта 2020

Вы можете указать Matche s, для которого request.user имеет в качестве Player объект player_home и / или player_away для этого совпадения с:

from django.db.models import Q

Match.objects.filter(
    Q(<b>player_home__name__user=request.user</b>) |
    Q(<b>player_away__name__user=request.user</b>)
)

Примечание : внешний ключ относится к объекту , а не к строковому представлению этого объекта. Следовательно, name не совсем хорошее имя для обозначения объекта Profile. Возможно, вы захотите переименовать его в profile.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...