литерал для int () с основанием 10: 'testuser', даже если переданный аргумент является строкой - PullRequest
1 голос
/ 15 июня 2019

Мне нужно создать блог проекта для моего задания в колледже, и я пытаюсь создать страницу для отображения всех сообщений определенного пользователя, но я получаю эту ошибку

Traceback:

Файл "/home/Grayocean/.virtualenvs/myenv/lib/python3.7/site-packages/django/core/handlers/exception.py" во внутренней папке 34. response = get_response (request)

Файл "/home/Grayocean/.virtualenvs/myenv/lib/python3.7/site-packages/django/core/handlers/base.py" в _get_response 115. response = self.process_exception_by_middleware (e, request)

Файл "/home/Grayocean/.virtualenvs/myenv/lib/python3.7/site-packages/django/core/handlers/base.py" в _get_response 113. response = wrapped_callback (request, * callback_args, **callback_kwargs)

Файл "/home/Grayocean/grayocean.co/blog/views.py" в user_blog_list 121. blogs = get_object_or_404 (блог, автор = имя пользователя)

Файл "/ home /Grayocean / .virtualenvs / myenv / lib / python3.7 / site-packages / django / shortcuts.py "в get_object_or_404 93. return queryset.get (* args, ** kwargs)

Файл "/home/Grayocean/.virtualenvs/myenv/lib/python3.7/site-packages/django/db/models/query.py "in get 399. clone = self.filter (* args, ** kwargs)

Файл" /home/Grayocean/.virtualenvs/myenv/lib/python3.7/site-packages/django/db / models / query.py "в фильтре 892. вернуть self._filter_or_exclude (False, * args, ** kwargs)

Файл" /home/Grayocean/.virtualenvs/myenv/lib/python3.7/site-packages / django / db / models / query.py "в _filter_or_exclude 910. clone.query.add_q (Q (* args, ** kwargs))

Файл" /home/Grayocean/.virtualenvs/myenv / lib / python3.7 / site-packages / django / db / models / sql / query.py "в add_q 1290. предложение, _ = self._add_q (q_object, self.used_aliases)

файл"/home/Grayocean/.virtualenvs/myenv/lib/python3.7/site-packages/django/db/models/sql/query.py "в _add_q 1318. split_subq = split_subq, simple_col = simple_col,

Файл "/home/Grayocean/.virtualenvs/myenv/lib/python3.7/site-packages/django / db / models / sql / query.py "в build_filter 1251. condition = self.build_lookup (lookups, col, value)

Файл" /home/Grayocean/.virtualenvs/myenv/lib/python3.7 / site-packages / django / db / models / sql / query.py "в build_lookup 1116. lookup = lookup_class (lhs, rhs)

Файл" /home/Grayocean/.virtualenvs/myenv/lib/python3.7 / site-packages / django / db / models / lookups.py "в init 20. self.rhs = self.get_prep_lookup ()

File" / home / Grayocean /.virtualenvs / myenv / lib / python3.7 / site-packages / django / db / models / fields / related_lookups.py "в get_prep_lookup 115. self.rhs = target_field.get_prep_value (self.rhs)

Файл"/home/Grayocean/.virtualenvs/myenv/lib/python3.7/site-packages/django/db/models/fields/init.py" в get_prep_value 966. return int (value)

Тип исключения: ValueError at / user / rheazes Значение исключения: недопустимый литерал для int () с основанием 10: 'testuser'

views.py

def user_blog_list(self, username):
    blogs=get_object_or_404(Blog, author=username)
    context={
    'posts':blogs
    }
    return render(request,'blog/user_posts.html',context)

models.py

class Blog(models.Model):
    title=models.CharField(max_length=100)
    content=models.TextField(blank=True)
    image = models.ImageField(upload_to='blog_images', blank=True)
    image1= models.ImageField(upload_to='blog_images', blank=True,verbose_name='second image')
    image2= models.ImageField(upload_to='blog_images', blank=True,verbose_name='third image')
    image3= models.ImageField(upload_to='blog_images', blank=True,verbose_name='fourth image')
    image4= models.ImageField(upload_to='blog_images', blank=True,verbose_name='fifth image')
    video =models.FileField(upload_to='blog_images',blank=True)
    date_posted=models.DateTimeField(default=timezone.now)
    author=models.ForeignKey(User, on_delete=models.CASCADE)
    likes=models.ManyToManyField(User,related_name='likes',blank=True)
    dislikes=models.ManyToManyField(User,related_name='dislikes',blank=True)

urls.py

path('user/<str:username>',views.user_blog_list,name='user-posts'),

1 Ответ

1 голос
/ 15 июня 2019

Вы использовали неправильное выражение поиска в функции get_object_or_404().Это должно быть author__username=username вместо author=username

def user_blog_list(self, username):
    blogs=get_object_or_404(Blog, <b>author__username=username</b>) <b># change is here <<<<</b>
    context={
    'posts':blogs
    }
    return render(request,'blog/user_posts.html',context)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...