Python 如何筛选外键关系
我有以下型号:Python 如何筛选外键关系,python,django,django-models,django-forms,django-views,Python,Django,Django Models,Django Forms,Django Views,我有以下型号: class UserProfile(models.Model): user = models.OneToOneField(User) class Site(models.Model): user = models.ForeignKey(User) site_name = models.CharField(max_length=128, blank=False, null=False) class Team(models.Model): site
class UserProfile(models.Model):
user = models.OneToOneField(User)
class Site(models.Model):
user = models.ForeignKey(User)
site_name = models.CharField(max_length=128, blank=False, null=False)
class Team(models.Model):
site = models.ForeignKey(Site)
team_member_name = models.CharField(default='name', max_length=128, blank=False, null=False)
我有一个视图,其中列出了数据库中的所有团队成员:
@login_required
def home(request, team_member_id=None):
team_members = Team.objects.all().order_by('team_member_name')
如何筛选此项,以便仅显示与登录的用户具有相同站点的团队成员?尝试此项
@login_required
def home(request, team_member_id=None):
user = request.user
team_members = Team.objects.all().filter(site__user=user).order_by('team_member_name')
相关文档,以及。试试这个
@login_required
def home(request, team_member_id=None):
user = request.user
team_members = Team.objects.all().filter(site__user=user).order_by('team_member_name')
相关文档,以及。试试这个
@login_required
def home(request, team_member_id=None):
user = request.user
team_members = Team.objects.all().filter(site__user=user).order_by('team_member_name')
相关文档,以及。试试这个
@login_required
def home(request, team_member_id=None):
user = request.user
team_members = Team.objects.all().filter(site__user=user).order_by('team_member_name')
相关文档,以及。您可以使用来实现此目的
要按不同模型中的字段排序,请使用与
您正在跨模型关系进行查询。就是这个
字段,后跟一个双下划线(_u),后跟
新模型中的字段,依此类推,以获得所需的任意多个模型
加入
在您的情况下,以下内容应该有效:
team\u members=team.objects.filter(site\u user=user).order\u by('team\u member\u name')
您可以使用它来实现这一点
要按不同模型中的字段排序,请使用与
您正在跨模型关系进行查询。就是这个
字段,后跟一个双下划线(_u),后跟
新模型中的字段,依此类推,以获得所需的任意多个模型
加入
在您的情况下,以下内容应该有效:
team\u members=team.objects.filter(site\u user=user).order\u by('team\u member\u name')
您可以使用它来实现这一点
要按不同模型中的字段排序,请使用与
您正在跨模型关系进行查询。就是这个
字段,后跟一个双下划线(_u),后跟
新模型中的字段,依此类推,以获得所需的任意多个模型
加入
在您的情况下,以下内容应该有效:
team\u members=team.objects.filter(site\u user=user).order\u by('team\u member\u name')
您可以使用它来实现这一点
要按不同模型中的字段排序,请使用与
您正在跨模型关系进行查询。就是这个
字段,后跟一个双下划线(_u),后跟
新模型中的字段,依此类推,以获得所需的任意多个模型
加入
在您的情况下,以下内容应该有效:
team\u members=team.objects.filter(site\u user=user).order\u by('team\u member\u name')
这可以用一行来完成,但让我解释一下,以便您理解这个概念:
您可以通过请求登录用户,因为您使用了@login\u required(访问视图的用户将始终登录)
获取用户的站点:
site_of_logged_in_user = Site.objects.get(user=loggedin_user)
# if there can be only one site for a user
现在,您可以通过按站点筛选团队
team = Team.objects.filter(site=site_of_logged_in_user)
这可以在一行中完成,但让我解释一下,以便您能够理解这个概念:
您可以通过请求登录用户,因为您使用了@login\u required(访问视图的用户将始终登录)
获取用户的站点:
site_of_logged_in_user = Site.objects.get(user=loggedin_user)
# if there can be only one site for a user
现在,您可以通过按站点筛选团队
team = Team.objects.filter(site=site_of_logged_in_user)
这可以在一行中完成,但让我解释一下,以便您能够理解这个概念:
您可以通过请求登录用户,因为您使用了@login\u required(访问视图的用户将始终登录)
获取用户的站点:
site_of_logged_in_user = Site.objects.get(user=loggedin_user)
# if there can be only one site for a user
现在,您可以通过按站点筛选团队
team = Team.objects.filter(site=site_of_logged_in_user)
这可以在一行中完成,但让我解释一下,以便您能够理解这个概念:
您可以通过请求登录用户,因为您使用了@login\u required(访问视图的用户将始终登录)
获取用户的站点:
site_of_logged_in_user = Site.objects.get(user=loggedin_user)
# if there can be only one site for a user
现在,您可以通过按站点筛选团队
team = Team.objects.filter(site=site_of_logged_in_user)