Если посещение является сильной концепцией в вашем приложении, то, возможно, имеет смысл использовать его так, как вы определили: посещение состоит из «пользователя-пользователя» и «посетителя-пользователя».
Если, однако, посещение - это просто способ, которым пользователи связаны между собой, то, возможно, вы должны иметь отношение ManyToMany
между пользователи .Для этой цели вам, вероятно, следует использовать ManyToManyField.symmetrical в профиле пользователя (в котором вы расширяете информацию, поставляемую с auth.models.User
).
В любом случаеЧто касается related_name, вы можете либо отключить обратное отношение , если у вас нет доступа к посещениям от пользователя , либо использовать подходящее имя, такое какvisits_to_self
в user
и visits_to_others
в visitor
, что позволит увидеть, кто посетил пользователя, позвонив по номеру user.visits_to_self
, и кто посетил пользователя по user.visits_to_others
.