擅长:python、mysql、java
<p>根据Ivan的回答,我为与“一对多”和“多对多”关系相关的多个模型提出了以下结构,并相应地使用<code>select_related</code>和{<cd2>}。在</p>
<p>在提供的示例中,只需要<code>select_related</code>。在</p>
<pre><code>class Country(models.Model):
title = models.CharField()
def __str__(self):
return '{0}'.format(self.title)
class CityManager(models.Manager):
def get_queryset(self):
return super().get_queryset().select_related('country')
class City(models.Model):
title = models.CharField()
country = models.ForeignKey(Country)
objects = CityManager()
def __str__(self):
return '{0}-{1}'.format(
self.title,
self.country.__str__(),
)
class PortManager(models.Manager):
def get_queryset(self):
return super().get_queryset().select_related('city')
class Port(models.Model):
city = models.ForeignKey(City)
def __str__(self):
return self.city.__str__()
</code></pre>