int()的基数为10的文字:“ testuser”,即使传递的参数为字符串

时间:2019-06-15 14:07:39

标签: python django

我必须为我的大学任务创建一个项目博客,并试图创建一个页面来显示特定用户的所有帖子,但我一直收到此错误

  

跟踪:

     

文件   “ /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 = wrapd_callback(request,* callback_args,** callback_kwargs)

     

user_blog_list中的文件“ /home/Grayocean/grayocean.co/blog/views.py”     121. blogs = get_object_or_404(Blog,author = username)

     

文件   “ /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”   在得到     399. clone = self.filter(* args,** kwargs)

     

文件   “ /home/Grayocean/.virtualenvs/myenv/lib/python3.7/site-packages/django/db/models/query.py”   在过滤器中     892. return 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”   在初始化中     20. self.rhs = self.get_prep_lookup()

     

文件   “ /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)

     

异常类型:/ user / rheazes处的ValueError异常值:无效   以10为底的int()的文字:'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 个答案:

答案 0 :(得分:1)

您在 get_object_or_404() 函数中使用了 错误的查找表达式 。它应该是 author__username=username ,而不是 author=username

def user_blog_list(self, username):
    blogs=get_object_or_404(Blog, author__username=username) # change is here <<<<
    context={
    'posts':blogs
    }
    return render(request,'blog/user_posts.html',context)