我有以下型号:
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)
我有一个视图列出了数据库中的所有team
成员:
@login_required
def home(request, team_member_id=None):
team_members = Team.objects.all().order_by('team_member_name')
我如何筛选它,以便只显示与已登录的user
具有相同site
的团队成员?你知道吗
这可以用一行字来完成,但是让我来解释一下,这样你就可以理解这个概念了:
您可以从请求中获得登录用户,因为您使用了@login\u required(访问视图的用户将始终登录)
获取用户站点:
现在您可以通过按站点筛选团队
试试这个。你知道吗
相关文档here、here和here。你知道吗
您可以使用^{} 来实现这一点。你知道吗
在您的情况下,以下操作应该有效:
team_members = Team.objects.filter(site__user=user).order_by('team_member_name')
相关问题 更多 >
编程相关推荐