Django - добавить связанное поле в набор запросов - PullRequest
0 голосов
/ 18 ноября 2011

У меня есть две модели:

class A(models.Model):
    # fields

class B(models.Model):
    a       = models.ForeignKey(A)
    name    = models.CharField(max_length=64)

Что я хочу сделать, это получить отфильтрованный набор запросов из A в дополнение к связанным объектам из B и добавить их в набор запросов из A, поэтому я хотел быбыть в состоянии получить доступ к полю name таким образом: A.B.name

Есть идеи, как это сделать?

1 Ответ

2 голосов
/ 19 ноября 2011

Проблема в том, что, поскольку отношения один-ко-многим, A имеет не один B, а скорее b_set

Вы могли бы что-то вроде:

for b in a.b_set.all():
    b.name

Но вы не можете ссылаться только на B, потому что эта концепция не существует.Это было бы, однако, если бы вы использовали OneToOneField.Тогда вы могли бы легко сделать:

a.b.name

, потому что есть только один B для каждого A.Но вы должны смоделировать свой объект после того, как будут установлены реальные отношения, а не то, как вы бы предпочли API для работы.

...