Кнопка поиска, отображающая неверный результат django? - PullRequest
0 голосов
/ 18 сентября 2018

Я создаю простое приложение для блога с помощью 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 голосов
/ 18 сентября 2018

измените это return render(request, template) на return render(request, template, context={'blogs':result}) и зациклите его на странице списка блогов

...