我在不同的应用程序目录中有 2 个models.py 文件:users.models.py 和friends.models.py。
有一个问题:如果某个用户从 UserProfile 模型中删除,他的所有友谊网络也必须与他一起删除。这是很自然的。
但是当我将 Friendship 导入 users.model.py 时出现错误:Cannot import name Friendship
我了解由于在这两个文件中相互导入而出现错误,并且我知道我可以借助信号轻松解决此问题,但我不知道如何以正确的方式解决。
有人可以在这种特殊情况下提供帮助吗?
在 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()
提前致谢!!!