ForeignKeyのメンバーを取ってこれる件
ForeignKeyのリレーションはたいへん
たとえばこんな models.py があるとする
class User(models.Model): name = models.CharField(max_length=100) class Hoge(models.Model): hoge = models.CharField(max_length=100) moge = models.ForeignKey(User)
こういうときに HogeModel をつかっているときに UserModel の name を更新したいとか扱いたいとかある。そういうときは
# Model の名前は小文字にするので user # __name でリレーションをひっぱってくる hoges = Hoge.objects.filter(user__name='hoge') # name を変更する hoges.update(name='mogemoge')
とするわけだ。要は user__name の部分を知らなくてハマってたという話。この例だと name を文字列で置換なんてあんまりしないと思うけど、たとえばなんちゃら id とかを一括で更新したいとかするときは便利
つーか公式ドキュメント嫁やってはなしでしたネ!しかし正直若干見づらいょ
参考::クエリを生成する — Django v1.0 documentation