Объект не сохраняется в базе данных Django - PullRequest
0 голосов
/ 28 февраля 2020

У меня есть веб-приложение с функцией друзей, которое работает, за исключением небольшого сохранения текущего пользователя в запрашиваемом пользователе ManyToManyField.

Вот моя модель

friends = models.ManyToManyField(User,blank=True,related_name='user_connections')

И мой взгляд

class AddFriendRedirect(RedirectView):
    def get_redirect_url(self,*args,**kwargs):
        username = self.kwargs.get("username")
        obj = get_object_or_404(UserProfileInfo,slug=username)
        # print(f'OBJECT: {other}')
        # print(f'Current user: {self.request.user}')
        # user_profile = User.objects.get(username=username)
        url_ = obj.get_absolute_url()
        user = self.request.user
        user_ = self.request.user.username
        # user__ = 
        print(f"HEY YOU! YE! \n{username}\n{obj}\n{url_}\n{user}")
        if user.is_authenticated:
            print("User is authenticated")
            if user in obj.friends.all():
                obj.friends.remove(user)
                user.user_connections.remove(obj)
                user.save()
            else:
                obj.friends.add(user)
                user.user_connections.add(obj)
                user.save()
        return url_

И, наконец, мои URL

path('profile/<str:username>/add/',views.AddFriendRedirect.as_view(),name='add_friend'),

Все работает, кроме сохранения для user.user_connections.add (obj). На obj.friends.add (пользователь) он добавляет текущего пользователя в их поле Manytomany, но он просто не работает с пользователем user.user_connections.add (obj). Я перепробовал кучу вещей, в том числе

user.friends.add(obj)

user.userprofileinfo.friends.add(obj)

user.userprofileinfo.user_connections.add(obj)

UserProfileInfo - это моя пользовательская модель UserProfile

Я просто запутался, почему это не работает, и это страннее, потому что ошибок нет бросили либо. Спасибо за любую помощь

...