Я делал проект для моего университетского задания, используя 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
Значение: невозможно распаковать неповторяемый объект профиля