sushi アプリを例にしたdjango manytomany フィールドの例(書きかけ)
sushi アプリを例にしたdjango manytomany フィールドの例
>>> from sushi.models import Tagcloud, Nigiri
# 卵をつくります
>>> t0=Tagcloud()
>>> t0.keyword=u'たまご'
>>> t0.save()
# 握りを作ります. 先にmanytomany 以外の必須フィールドを作成し、save()します。
>>> n0 = Nigiri()
>>> n0.name = u”卵巻き"
>>> n0.value = 300
>>> n0.save()
# 保存するより前にmanytomany フィールドを追加するとエラー吐きます
>>> n1.name='だしまき'
>>> n1.tagcloud.add(t0)
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/Library/Python/2.7/site-packages/django/db/models/fields/related.py", line 827, in __get__
through=self.field.rel.through,
File "/Library/Python/2.7/site-packages/django/db/models/fields/related.py", line 524, in __init__
(instance, source_field_name))
ValueError: "<Nigiri: だしまき>" needs to have a value for field "nigiri" before this many-to-many relationship can be used.
>>> s1.save()
>>> s1.tagcloud.add(t1)
# 具材を保存します。
>>> n0.guzai.add(t0)
>>> n0.guzai.add(Tagcloud.objects.get(keyword=u"こめ")
[ x.keyword for x in Tagcloud.objects.all() if x.keyword in centence ]