Выбор связанных объектов в Django - PullRequest
0 голосов
/ 10 августа 2009

У меня следующая проблема:

В моем приложении 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-файл, который используется в моем клиентском приложении.

вопрос:

Как я могу запросить информацию о заявлениях, которые один пользователь (например, test, часть ActiveList), сделал пользователю, находящемуся в цикле

user2, например, взято так

{%  for item in activeList  %}

{% endfor %}

пользователь 2 - это элемент в данном случае

Ответы [ 2 ]

1 голос
/ 10 августа 2009

То, на что вы смотрите, относится к представлению более корректно, чем шаблон. Я думаю, что вы хотите что-то вроде:

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

Затем вы можете передать их в свой шаблон и работать с ними напрямую.

Вы также можете посмотреть на переосмысление того, как ваши таблицы связаны друг с другом. Я думаю, что претензии, вероятно, должны идти непосредственно между пользователями, и то, является ли данный пользователь активным, должно быть внешним по отношению к отношениям. Я думаю, что пользователь должен иметь возможность требовать игру с неактивным пользователем, даже если ему придется ждать, пока пользователь не активируется, прежде чем эта игра может начаться.

0 голосов
/ 10 августа 2009

Я не уверен, что полностью понимаю ваш вопрос, но я думаю, что информация, которую вы ищете, может быть здесь: http://docs.djangoproject.com/en/dev/topics/db/queries/

Возможно, вы могли бы уточнить вопрос, если не нашли там ответа?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...