[英]django model foreign key AttributeError
在我的Django项目中,我有两个应用程序: “ music”和“ user” 。
我试图在我的应用程序“ music”中创建一个表,作为表“ MusicPiece”和另一个应用程序“ user”的表“ Member”之间的联合表。 我遵循了我在其他文章中阅读的内容,但是在进行迁移时遇到了AttributeError :
AttributeError: module 'user.models' has no attribute 'Member'
这是我的两个model.py文件:-in“ music”:
from django.db import models
from django.utils import timezone
from user import models as user_models
class MusicPiece(models.Model):
name = models.CharField(max_length=20)
class MusicPieceAuthorship(models.Model):
user = models.ForeignKey(user_models.Member,
on_delete=models.CASCADE)
music_piece = models.ForeignKey(MusicPiece,
on_delete=models.CASCADE)
-在“用户”中:
from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User
from music import models as music_models
class Member(models.Model):
user = models.OneToOneField(User)
birth_date = models.DateField(null=True)
avatar = models.ImageField()
最奇怪的是,当我在user.models.py中导入music.models.MusiquePiece时 ,它的工作原理非常完美。 当我导入user.models.xxxx时,它在任何应用程序中均不起作用。
您知道问题出在哪里吗?
@AlexHall在这里是正确的轨道。 尝试将music.py更改为
from django.db import models
from django.utils import timezone
class MusicPiece(models.Model):
name = models.CharField(max_length=20)
class MusicPieceAuthorship(models.Model):
from user.models import Member # Ugly but avoids circular imports
user = models.ForeignKey(Member,
on_delete=models.CASCADE)
music_piece = models.ForeignKey(MusicPiece,
on_delete=models.CASCADE)
同样,您似乎并没有在成员脚本中实际使用音乐模型,因此请删除以下行,以避免循环导入的进一步问题。
from music import models as music_models
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.