次の 2 つのモデルがあり、それらを ManyToMany 関係にリンクしたいと思います。
www/hruser/models.py
from django.db import models class HRuser(models.Model): """Custom user class.""" email = models.EmailField(max_length=60, unique=True, db_index=True) is_active = models.BooleanField(default=True) is_staff = models.BooleanField(default=False) video = models.ManyToManyField('www.pandastream.models.Video', related_name='users')
www/pandastream/models.py
from django.db import models from www.hruser.models import HRuser class Video(models.Model): """Video object, really basic for now.""" video_id = models.CharField(max_length=32, unique=True, db_index=True) user = models.ForeignKey(HRuser, related_name='videos')
ご覧のとおり、それらは別のアプリにあり、Video にも HRuser への ForeignKey があります。循環インポートを回避するために、ここwww/hruser/models.py
でドキュメントで定義されているように、遅延関係を使用しようとしましたが、 syncdb でエラーが発生します。
Error: One or more models did not validate:
hruser.hruser: 'video' has an m2m relation with model www.pandastream.models.Video, which has either not been installed or is abstract.
これまでのところ、私は試しました:
- ビデオ モデルを Python シェルにインポートするには、動作します
- mysql(5.6.10) から sqlite(3.7.12) に切り替える
- Django 1.5 から Django 1.4 に切り替えるには
HRuser.video
フィールドを単純な ForeignKey フィールドに変更するには- のソースを見る
django.core.management.validation
これらすべてが私の問題に何も影響を与えなかったので、ドキュメントを正しく理解していないか、ドキュメントが間違っているかのいずれかですが、いずれにせよ、助けていただければ幸いです。