【问题标题】:Selecting related objects in django在 django 中选择相关对象
【发布时间】:2009-08-10 18:17:02
【问题描述】:

我有以下问题:

我的应用程序有 2 个模型:

1)

class ActiveList(models.Model):
    user = models.ForeignKey(User, unique=True)
    updatedOn = models.DateTimeField(auto_now=True)
    def __unicode__(self):
        return self.user.username

'''
GameClaim class, to store game requests.
'''
class GameClaim(models.Model):
    me = models.ForeignKey(ActiveList, related_name='gameclaim_me')
    opponent = models.ForeignKey(ActiveList, related_name='gameclaim_opponent')

在我看来,我将所有 ActiveList 对象 all = ActiveList.objects.all() 传递给模板

在模板中,我遍历 ActiveList 中的每个项目,并创建一个用于我的客户端应用程序的 xml 文件。

问题是:

如何查询一个用户(例如测试,ActiveList 的一部分)对处于循环中的用户所做的声明的信息

user2 例如是这样拍摄的

{%  for item in activeList  %}

{% endfor %}

在这种情况下,用户 2 是一个项目

【问题讨论】:

    标签: python django


    【解决方案1】:

    您正在查看的内容在视图中比在模板中更合适。我想你想要这样的东西:

    claimer = User.objects.get(name='test')
    claimed_opponents = User.objects.filter(gameclaim_opponent__me__user=claimer)
    

    然后您可以将它们传递到您的模板中,并直接对它们进行操作。

    您还可以考虑重新思考您的表格如何相互关联。我认为声明可能应该直接在用户之间进行,并且给定用户是否活跃应该是关系之外的。我认为用户应该能够与非活动用户一起认领游戏,即使他们必须等待用户重新激活该游戏才能开始。

    【讨论】:

    • 好吧,1) 我正在尝试获取活跃玩家列表,它将按以下方式聚合 Username1 我发现将整个列表传递给模板,然后在模板中循环遍历它更容易。不知道我应该如何一个一个地传递每个用户......有什么想法吗? 2) 我正在考虑为游戏添加一些交互性,因此考虑只在活跃用户之间进行声明。
    【解决方案2】:

    我不确定我是否完全理解您的问题,但我认为您正在寻找的信息可能在这里:http://docs.djangoproject.com/en/dev/topics/db/queries/

    如果你在那里没有找到答案,也许你可以澄清这个问题?

    【讨论】:

      猜你喜欢
      • 2012-09-15
      • 1970-01-01
      • 2013-02-16
      • 2016-05-24
      • 1970-01-01
      • 1970-01-01
      • 2018-12-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多