DjangoのManyToManyFieldの値が取れない
- 2015.02.01
- Django
DjangoでManyToManyFieldのリストを取得しようと思ったら、できなくてハマった。例えば以下の状況を考えます。
class Publication(models.Model): title = models.CharField(max_length=30) class Article(models.Model): headline = models.CharField(max_length=100) publications = models.ManyToManyField(Publication)
リストを取得しようとして、
# article_instanceをArticleのインスタンスとする print article_instance.publications
すると、エラーで落ちてしまいます。そこで解決方法(というか、本来の使い方)は、
print article_instance.publications.all()
と、.all()でアクセスするべきです。そもそもManyToManyFieldはリストではないのです。意外と記述がなくて、時間を取られました。
-
前の記事
Coredataのリレーション代入で「NSInvalidArgumentException」発生 2015.01.31
-
次の記事
nginxで403 Forbidden 2015.02.08