Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何筛选外键关系_Python_Django_Django Models_Django Forms_Django Views - Fatal编程技术网

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)