Doge log

Abby CTO 雑賀 力王のオフィシャルサイトです

ManyToManyの引き方

もうほぼメモ。
これくらい探せばすぐ見つかるけど。
このようなrelationのモデルの場合

models.py
class Tag(models.Model):
    name = models.CharField(maxlength=200)
    
    class Admin:
        list_display = ('name',)

    def __repr__(self):
        return self.name
    
class Entry(models.Model):
    pub_date = models.DateTimeField('date published', auto_now_add=True)
    title = models.CharField(maxlength=200)
    body = models.TextField()
    tags = models.ManyToManyField(Tag)

    class META:
        ordering = ('-pub_date',)
        get_latest_by = 'pub_date'

    class Admin:
        list_display = ('title','pub_date')
        
    def __repr__(self):
        return self.title 

あるTagにひもついているEntryを引っ張りたいって事が往々にしてある。
で引き方

Tagの場合
    Tag.objects.filter(name=tag).get().entry_set.all()

もちろん"get()"つかっているので一意にならないとアウトです。
うくく。