Взаимные атрибуты foo.bar и bar.foo в моделях django с однообъемными представлениями

У меня есть два класса, Foo и Bar, в приложении Django (в AppEngine, если это имеет значение). Между ними отношения один на один.

class Foo(BaseModel):
    bar = Bar.objects.get(foo=self.id)

class Bar(BaseModel):
    foo = models.OneToOneField(Foo, blank=True, null=True, help_text="Foos for this bar")

Мне бы хотелось, чтобы каждый объект обоих классов имел связанный объект другого класса в качестве переменной экземпляра.

Какой лучший способ разрешить это?

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

Я подозреваю, что есть правильный способ сделать это, и это не так!

1 ответ

Решение

Вам не нужно ничего делать. Это поведение по умолчанию. Просто определите отношения в Bar, а также Foo автоматически получит bar приписывать.

Другие вопросы по тегам