2011-02-04 7 views
4

Я хотел бы точно такую ​​же вещь, как django.contrib.contenttypes.generic.GenericForeignKey, но OneToOne вместо ForeignKey. Я подумал, что легкий (хотя и незначительно неэлегантный) обходной путь должен был добавить unique=True в поле, о котором идет речь, но это пробки.Как я могу создать и применить общее отношение OneToOne в django?

ответ

5

unique_together?

Любая комбинация content_type поля и ID поле представляет собой уникальный идентификатор для одного объекта, следовательно, от 1 до 1.

http://docs.djangoproject.com/en/dev/ref/models/options/#unique-together

+1

Я также имеющие один и тот же вопрос. Использование unique_together обеспечивает уникальность отношения в базе данных, но мне все еще нужно ссылаться на него как my_foreign_key.objects.all() [0]. Есть ли способ ссылаться на него так же, как my_foreign_key, как нормальное поле OneToOne? – duduklein

+0

@ duduklein Вы можете свободно настраивать любые методы python для своего класса, например '@property def my_foreign_key (self) return foo' - в любом случае стандартная практика задавать новые вопросы, если вы не можете найти ответ. –

+0

Это то, что я сделал (добавьте свойство). Спасибо, в любом случае – duduklein