система последователей в django "bool not callable" - PullRequest
0 голосов
/ 15 июня 2019

Я пытаюсь создать систему подписчиков, используя django, и столкнулся с этой проблемой, может кто-нибудь, пожалуйста, помогите мне или дайте мне несколько советов относительно создания системы подписчиков с django.

обратная связь выглядит следующим образом

Traceback:

Файл "C: \ Users \ Mustafa" Lakhani \ AppData \ Local \ Programs \ Python \ Python37-32 \ Lib \ сайта-пакеты \ Джанго \ ядро ​​\ обработчики \ exception.py» во внутреннем 34. response = get_response (запрос)

Файл "C: \ Users \ Mustafa" Lakhani \ AppData \ Local \ Programs \ Python \ Python37-32 \ Lib \ сайта-пакеты \ Джанго \ ядро ​​\ обработчики \ base.py» в _get_response 126. response = self.process_exception_by_middleware (e, request)

Файл "C: \ Users \ Mustafa" Lakhani \ AppData \ Local \ Programs \ Python \ Python37-32 \ Lib \ сайта-пакеты \ Джанго \ ядро ​​\ обработчики \ base.py» в _get_response 124. response = wrapped_callback (запрос, * callback_args, ** callback_kwargs)

Файл "C: \ Users \ Mustafa" Lakhani \ AppData \ Local \ Programs \ Python \ Python37-32 \ Lib \ сайта-пакеты \ Джанго \ Views \ родового \ base.py» ввиду 68. вернуть self.dispatch (запрос, * args, ** kwargs)

Файл "C: \ Users \ Mustafa" Lakhani \ AppData \ Local \ Programs \ Python \ Python37-32 \ Lib \ сайта-пакеты \ Джанго \ Views \ родового \ base.py» в отправке 88. обработчик возврата (запрос, * args, ** kwargs)

Файл "D: \ sb \ blog \ views.py" в get 186. if request.user.is_authenticated ():

Тип исключения: ошибка типа в / user / mustafalakhani / follow Exception Значение: объект 'bool' не вызывается

код указан ниже

models.py

class Profile(models.Model):
    user=models.OneToOneField(User, on_delete=models.CASCADE)
    image=models.ImageField(default='default.jpg',upload_to='profile_pics',blank=True)
    description=models.TextField(max_length=200, blank=True)
    following = models.ManyToManyField(User, related_name='followed_by', blank=True)
    def __str__(self):
        return f'{self.user.username} Profile'

    def saveimg(self):
        super().save()

        img=Image.open(self.image.path)

        if img.height>300 or img.width>300:
            output_size=(300,300)
            img.thumbnail(output_size)
            img.saveimg(self.image.path)

views.py

class UserFollowView(View):
    def get(self, request, username, *args, **kwargs):
        toggle_user=get_object_or_404(User,username__iexact=username)
        if request.user.is_authenticated():
            user_profile, created=Profile.objects.get_or_create(request.user)
            if toggle_user in user_profile.following.all():
                user_profile.following.remove(toggle_user)
            else:
                user_profile.following.add(toggle_user)
        return HttpResponseRedirect(home)

urls.py

path('user/<str:username>/follow', UserFollowView.as_view(),name='follow_user'),

Ответы [ 2 ]

4 голосов
/ 15 июня 2019

В Django 2 user.is_authenticated является атрибутом, поэтому вам нужно отбросить ()

request.user.is_authenticated
1 голос
/ 15 июня 2019

user.is_authenticated - логическое значение.Это означает, что это может быть либо True, либо False.Поскольку это не функция, при попытке ее вызова ничего не возвращается.

Просто удалите скобки, указывающие, что вы хотите вызвать ее:

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