Встроенный Admin, когда модель имеет 2 внешних ключа к той же модели? - PullRequest
2 голосов
/ 21 апреля 2011

Я создал реферальную систему на своем сайте.По общему признанию, это поздно, и это, возможно, не те отношения, которые правильные.Если это правильно, есть ли способ для меня, чтобы превратить это в псевдо-inline для администратора пользователя?Это не разрешено, как в настоящее время построено, потому что есть два внешних ключа к той же таблице.

Спасибо

1 Ответ

0 голосов
/ 21 апреля 2011

На самом деле это отношение ManyToMany между пользователем и самим собой - сам класс Referral ничего не добавляет к этому отношению.

Обычно вы можете просто добавить ManyToManyField к модели, и он будет отображаться в админке - но я предполагаю, что класс User, на который вы ссылаетесь, является встроенным пользователем django.contrib.auth, который вы можете ' т напрямую изменить. Поэтому одним из способов было бы определить класс UserProfile, который имеет ForeignKey to User, и добавить туда отношение ManyToMany.

Изменить в ответ на комментарий Нет, я не совсем это имел в виду. Я говорю, что вы должны полностью отказаться от класса рефералов. Модель, состоящая из двух FK и ничего более - независимо от того, обе они принадлежат к одной и той же модели, - это сквозная таблица отношений M2M. В вашем случае это отношение между пользователем и самим собой, но, как я уже сказал, поскольку вы не хотите менять пользователя, оно существует между новой моделью UserProfile и самим собой.

...