Как сделать так, чтобы этот запрос на добавление в друзья работал на основе классов? - PullRequest
0 голосов
/ 22 января 2019

Я пытаюсь сделать так, чтобы запрос на добавление в друзья работал на проекте django, но продолжаю получать ошибки.В настоящее время я получаю сообщение об ошибке: аргумент TypeError в / friend_request / joe int () должен быть строкой, байтовым объектом или числом, а не 'User'

Модель моего друга не ищетint () хотя, поэтому я не уверен в том, что происходит.

представление на основе классов:

class AddFriend(APIView):
    def get(self, request, username):
        friend = User.objects.get(username=username)
        current_user = request.user.username
        f = Friend(current_user, friend, 1)
        f.save()

url:

url(r'^friend_request/(?P<username>[\w.@+-]+)', AddFriend.as_view(), name = 'add_friend'),

модель:

class Friend(models.Model):
    #static variables for friend_status attribute
    FRIENDS = 1
    A_REQUESTS_B = 2
    B_REQUESTS_A = 3

    friend_A = models.ForeignKey(User, related_name='friend_A')
    friend_B = models.ForeignKey(User, related_name='friend_B')
    friend_status = models.IntegerField()

    def __str__(self):
        return '%s and %s friendship' % (self.friend_A, self.friend_B)

    class Meta:
        unique_together = (('friend_A', 'friend_B'),)

В идеале этот CBV будет выяснять, кто является пользователем, отправляющим запрос, выяснить, какого друга «ищут» в URL, и создать / сохранить экземпляр нового друга.Откуда исходит ошибка int () и как ее исправить?

...