[英]List objects of logged current user
我想问一下如何通过django中基于类的视图列出当前登录用户的所有对象。
我在项目中有两个应用程序。 一种叫做用户,一种叫做羽毛球。
用户/模型.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)
羽毛球/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')
如何通过查询集访问已登录用户的所有匹配项? 感谢您的帮助!
你可以列出Matche
S对于该request.user
具有作为Player
对象player_home
和/或player_away
的那场比赛用:
from django.db.models import Q
Match.objects.filter(
Q(player_home__name__user=request.user) |
Q(player_away__name__user=request.user)
)
注意:外键是指一个对象,而不是该对象的字符串表示。 因此
name
并不是一个很好的名称来引用Profile
对象。 您可能需要考虑将其重命名为profile
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.