Я делаю проект для школы.Я создаю сайт социальной сети с Джанго.У меня проблемы с добавлением дружбы между пользователями.
В моделях я продлил базового пользователя Django.Правильно ли выполнено get_friendship?
models.py
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
real_name = models.CharField(max_length=60)
address = models.CharField(max_length=60)
phone_regex = RegexValidator(regex=r'^\+?1?\d{9,15}$')
phone_number = models.CharField(validators=[phone_regex], max_length=17)
def get_friendships(self):
friendships = Friendship.objects.all()
return friendships
class Friendship(models.Model):
creator = models.ForeignKey(User, related_name="friendship_creator_set", on_delete=models.CASCADE)
new_friend = models.ForeignKey(User, related_name="friend_set", on_delete=models.CASCADE, null=True)
confirmed = models.BooleanField(default=False)
@classmethod
def make_friend(cls, creator, new_friend, confirmed=True):
friendship, created = cls.objects.get_or_create(
creator = creator, new_friend = new_friend, confirmed=True)
friendship.save()
views.py
class Index(LoginRequiredMixin, generic.ListView):
login_url = '/login'
redirect_field_name = ''
template_name = 'home/index.html'
context_object_name = 'posts_list'
def get(self, request):
form = HomeForm()
posts = Post.objects.all().order_by('-pub_date')
users = User.objects.exclude(id=request.user.id)
user = Profile.user
friends = Profile.get_friendships(user)
args = {
'form': form, 'posts': posts, 'users': users, 'friends': friends
}
def add_friend(request, operation, pk):
friend = User.objects.get(pk=pk)
Friendship.make_friend(request.user, friend)
return redirect('/')
index.html
<h2>Friends</h2>
{% for friend in friends %}
<h3>{{ friend.username }}</h3>
{% endfor %}
Так чтопроблема в том, что я не могу получить доступ к списку друзей.Похоже, что get_friendships работает неправильно.Часть кода предназначена только для тестирования, поэтому они не находятся в окончательном виде.Вся возможная помощь будет оценена.Я совершенно новый с Джанго.