У меня есть таблицы Django, подобные следующим (я удалил ненужные поля):
class Person(models.Model):
nameidx = models.IntegerField(primary_key=True)
name = models.CharField(max_length=300, verbose_name="Name")
class Owner(models.Model):
id = models.IntegerField(primary_key=True)
nameidx = models.IntegerField(null=True, blank=True) # is Person.nameidx
structidx = models.IntegerField() # is PlaceRef.structidx
class PlaceRef(models.Model):
id = models.IntegerField(primary_key=True)
structidx = models.IntegerField() # used for many things and not equivalent to placeidx
placeidx = models.IntegerField(null=True, blank=True) # is Place.placeidx
class Place(models.Model):
placeidx = models.IntegerField(primary_key=True)
county = models.CharField(max_length=36, null=True, blank=True)
name = models.CharField(max_length=300)
Мой вопрос заключается в следующем. Если в моем файле views.py у меня есть Person, на который ссылается имя, и я хочу выяснить все места, которыми они владеют как QuerySet, что мне делать?
Я могу получить это далеко:
person = Person.objects.get(name=name)
owned_relations = Owner.objects.filter(nameidx=nameidx)
Как мне добраться отсюда до места? Должен ли я использовать методы базы данных?
Я также не уверен, должен ли я использовать ForeignKey для, например. Owner.nameidx.
Спасибо и извинения за этот чрезвычайно простой вопрос. Я не уверен, как изучать основы запросов к базе данных, кроме как пытаться, терпеть неудачу, спрашивать SO, пытаться снова ...:)