У меня есть 2 файла models.py в разных каталогах приложений: users.models.py и friends.models.py.
Существует одна проблема: если какой-либо пользователь удален из модели UserProfile, вся его дружеская сеть также должна быть удалена вместе с ним. Это очень естественно.
Но когда я импортирую Frienship в users.model.py, у меня появляется ошибка: Невозможно импортировать имя Friendship
Я понимаю, что ошибка возникла из-за взаимного импорта в эти 2 файла, и я знаю, что могу легко решить эту проблему с помощью сигналов, но я не знаю, как это сделать правильно.
Может ли кто-нибудь помочь в этом конкретном случае?
In 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()
Заранее спасибо !!!