0

次の 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

これらすべてが私の問題に何も影響を与えなかったので、ドキュメントを正しく理解していないか、ドキュメントが間違っているかのいずれかですが、いずれにせよ、助けていただければ幸いです。

4

1 に答える 1