ユーザーの個人エントリとグループ エントリを同時に表示できません。
私のグループモデルは次のように書かれています:
class Group(models.Model):
name = models.CharField(max_length=100)
users = models.ManyToManyField(User, blank=True, null=True, related_name='entry_users')
私のエントリーモデル:
class Entry(models.Model):
###
authorized_groups = models.ManyToManyField('Group', null=True, blank=True, related_name='entry_groups')
objects = EntryManager()
モデルの前にEntry
、ユーザー フィルターを使用してエントリ マネージャーを作成しました。
ユーザーの個々のエントリを表示する場合は、次を使用します。
class EntryManager(models.Manager):
def for_user(self, user):
return super(EntryManager, self).get_query_set().filter(creator=user)
ユーザーのグループ エントリを表示する場合は、次を使用します。
class EntryManager(models.Manager):
def for_user(self, user):
return super(EntryManager, self).get_query_set().filter(authorized_groups=user)
EntryManager
モデルの 2 つのバージョンを 1 つに結合したいと考えています。現在、どちらか一方を使用できますが、両方を使用することはできません。任意のヒント?
違いがある場合はviews.py
、 に、ユーザーがアクセスできるすべてのオブジェクトを取得するコード行があります。
entries = Entry.objects.for_user(request.user)
おそらく、両方のエントリ マネージャを保持し、2 つの異なるビューを作成する必要があります。1 つは個々のオブジェクト用で、もう 1 つはグループ オブジェクト用です。ただし、それはあまり DRY ではありません。