搜索按钮显示错误的结果django吗?

时间:2018-09-18 09:58:31

标签: django django-models django-forms django-templates django-views

我正在django的帮助下创建一个简单的博客应用。

这是我的模特

class categories(models.Model):
    Title = models.CharField(max_length=40, default='GST')


class Blog(models.Model):
    User = models.ForeignKey(settings.AUTH_USER_MODEL,on_delete=models.CASCADE,null=True,blank=True)
    Date = models.DateTimeField(default=datetime.now)
    Blog_title = models.CharField(max_length=255)
    Description = RichTextUploadingField(blank=True, null=True,config_name='special')
    Blog_image = models.ImageField(upload_to='blog_image', null=True, blank=True)
    Category = models.ForeignKey(categories,on_delete=models.CASCADE,related_name='Categories', null=True, blank=True)

这是我为搜索创建的视图:

def search(request):
    template = 'blog/blog_list.html'

    query = request.GET.get('q')

    if query:
       result = Blog.objects.filter(Q(Blog_title__icontains=query) | Q(Description__icontains=query) | Q(Category__Title__icontains=query))
    else:
       result = Blog.objects.filter(User=self.request.user).order_by('id')

return render(request, template)

在我的模板中:

             <form method='GET' class="form-horizontal" action="{% url 'blog:search' %}">
              <div class="box-body">
                 <div class="form-group">
                   <label for="inputEmail3" class="col-sm-2 control-label">Search</label>

              <div class="col-sm-10">
                    <input  name="q" value="{{request.GET.q}}" placeholder="Search">
              </div>
            </div>


          </div>

                 <div class="box-footer">
                    <button type="submit" class="btn btn-info pull-right">Go</button>

                 </div>



        </form>

我不知道代码出了什么问题...当我搜索某些Blog_title或说明时,它会显示空白页...

任何人都可以帮助我找出代码中出了什么问题吗。

谢谢...

1 个答案:

答案 0 :(得分:0)

将此return render(request, template)更改为 return render(request, template, context={'blogs':result}) 并在blog_listing页面

上进行遍历