異なるアプリ ディレクトリに 2 つの models.py ファイルがあります: users.models.py と friends.models.py。
問題が 1 つあります。UserProfile モデルからユーザーを削除した場合、そのユーザーの友情ネットワークもすべて削除する必要があります。とても自然です。
しかし、Friendship を users.model.py にインポートすると、次のエラーが表示されます: Cannot import name Friendship
これら 2 つのファイルの相互インポートが原因でエラーが発生したことは理解しており、シグナルを使用してこの問題を簡単に解決できることはわかっていますが、適切な方法でそれを行う方法がわかりません。
この特定のケースで誰か助けてもらえますか?
users.models.py で:
from friends.models import Friendship
class UserProfile(models.Model):
username = models.Charfield(max_length=50)
...
def delete(self, *args, **kwargs):
Friendship.objects.remove_all(self)
self.delete(*args, **kwargs)
friends.models.py で:
from users.models import UserProfile
class FriendshipManager(models.Manager):
def remove_all(self, user):
usr = Friendship.objects.get(user=user).friends
frs = [i.user for i in usr.all()]
for fr in frs:
usr.remove(fr)
class Friendship(models.Model):
user = models.Foreignkey(UserProfile)
friends = models.ManyToManyField('self')
objects = FriendshipManager()
前もって感謝します!!!