簡體   English   中英

Django模型外鍵AttributeError

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM