Как добавить дружбу между пользователями в Django - PullRequest
0 голосов
/ 22 ноября 2018

Я делаю проект для школы.Я создаю сайт социальной сети с Джанго.У меня проблемы с добавлением дружбы между пользователями.

В моделях я продлил базового пользователя 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 работает неправильно.Часть кода предназначена только для тестирования, поэтому они не находятся в окончательном виде.Вся возможная помощь будет оценена.Я совершенно новый с Джанго.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...