Как решить ошибку «не удается распаковать не повторяемый объект профиля»? - PullRequest
0 голосов
/ 15 июня 2019

Я делал проект для моего университетского задания, используя django. Я хочу создать систему подписчиков с использованием django, я написал код и получаю следующую ошибку

не может распаковать не повторяемый объект профиля

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

def follow_user(request, username):
    creator = get_object_or_404(Profile, user__username__icontains=username)
    is_followed=False
    if request.user.profile.following.filter(creator).exists():
        request.user.profile.following.remove(creator)
        is_followed=False
    else:
        request.user.profile.add(following=creator)
        is_liked=True
    context={
        'creator':creator,
        'is_followed': request.user.profile.filter(following=creator).exists(),
        }
    return HttpResponseRedirect(home)

urls.py

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

Traceback

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)

Файл "D: \ sb \ blog \ views.py" в follow_user 186. if request.user.profile.following.filter (создатель) .exists ():

Файл "C: \ Users \ Mustafa" Lakhani \ AppData \ Local \ Programs \ Python \ Python37-32 \ Lib \ сайта-пакеты \ Джанго \ дб \ модели \ manager.py» в manager_method 82. вернуть getattr (self.get_queryset (), name) (* args, ** kwargs)

Файл "C: \ Users \ Mustafa" Lakhani \ AppData \ Local \ Programs \ Python \ Python37-32 \ Lib \ сайта-пакеты \ Джанго \ дб \ модели \ query.py» в фильтре 844. вернуть self._filter_or_exclude (False, * args, ** kwargs)

Файл "C: \ Users \ Mustafa" Lakhani \ AppData \ Local \ Programs \ Python \ Python37-32 \ Lib \ сайта-пакеты \ Джанго \ дб \ модели \ query.py» в _filter_or_exclude 862. clone.query.add_q (Q (* args, ** kwargs))

Файл "C: \ Users \ Mustafa" Lakhani \ AppData \ Local \ Programs \ Python \ Python37-32 \ Lib \ сайта-пакеты \ Джанго \ дб \ модели \ SQL \ query.py» в add_q 1263. предложение, _ = self._add_q (q_object, self.used_aliases)

Файл "C: \ Users \ Mustafa" Lakhani \ AppData \ Local \ Programs \ Python \ Python37-32 \ Lib \ сайта-пакеты \ Джанго \ дб \ модели \ SQL \ query.py» в _add_q 1287. split_subq = split_subq,

Файл "C: \ Users \ Mustafa" Lakhani \ AppData \ Local \ Programs \ Python \ Python37-32 \ Lib \ сайта-пакеты \ Джанго \ дб \ модели \ SQL \ query.py» в build_filter 1161. arg, value = filter_expr

Тип исключения: ошибка типа в / user / mustafalakhani / follow Exception Значение: невозможно распаковать неповторяемый объект профиля

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