誰かが私に次の例で最善のアプローチを教えてもらえますか...
ページ上で、「グループ」オブジェクトをIDでロードします。また、そのグループに属するすべての連絡先を(ページングを使用して)一覧表示したいと思います。
ページングの問題のため、2番目のデータベースクエリを実行することを考えていました...
私からしてみれば...
group = get_object_or_404(Group, pk=id)
contacts = Contacts.objects.filter(group=x)
しかし、私はすでにグループにデータベースを2回ヒットさせているので、これは無駄に思えます。
私のモデルを参照してください。
class GroupManager(models.Manager):
def for_user(self, user):
return self.get_query_set().filter(user=user,)
class Group(models.Model):
name = models.CharField(max_length=60)
modified = models.DateTimeField(null=True, auto_now=True,)
#FK
user = models.ForeignKey(User, related_name="user")
objects = GroupManager()
def get_absolute_url(self):
return reverse('contacts.views.group', args=[str(self.id)])
class Contact(models.Model):
first_name = models.CharField(max_length=60)
last_name = models.CharField(max_length=60)
#FK
group = models.ForeignKey(Group)