В настоящее время у меня есть три модели в Django, которые создают круговую ссылку:
A User
может жить в Location
.Location
должен быть частью Property
.У Property
должен быть владелец, а это User
.
. Причина, по которой я хочу, чтобы каждый User
указывал местоположение, предназначена для людей, живущих в квартирах.Квартирный арендатор будет жить в номерной комнате, а домашний - нет.Но обратите внимание, что местоположение также может быть просто собственностью (т. Е. Арендатор дома живет в месте, которое является просто собственностью с адресом; у собственности нет номеров, этажей или зданий.).
Вот (урезанный) код:
class User( models.Model ) :
TYPE_CHOICES = (
( 't', 'tenant' ),
( 'o', 'property owner' ),
( 'v', 'vendor' ),
( 'm', 'property manager' ),
)
user_type = models.CharField( max_length = 1, choices = TYPE_CHOICES, default = 't' )
first_name = models.CharField( max_length = 135 )
last_name = models.CharField( max_length = 135 )
location = models.ForeignKey( Location, null = True, blank = True )
class Property( models.Model ) :
name = models.CharField( max_length = 135 )
owner = models.ForeignKey( User )
address_line_one = models.CharField( max_length = 135 )
address_line_two = models.CharField( max_length = 135, blank = True )
city = models.CharField( max_length = 135 )
state = models.CharField( max_length = 135 )
zip_code = models.CharField( max_length = 135 )
class Location( models.Model ) :
room = models.CharField( max_length = 135, blank = True )
floor = models.CharField( max_length = 135, blank = True )
building = models.CharField( max_length = 135, blank = True )
prop = models.ForeignKey( Property )
Пожалуйста, дайте мне знать, если вам, ребята, нужно больше разъяснений или кода.Заранее спасибо!