草堆搜索结果没有重定向

2024-04-25 16:33:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我成功地安装了whoosh并使其与Haystack一起工作。一切都很好,但我面临的一个问题是:在搜索关键字并打印出结果后,当我单击结果(标题)时,它不会将我重定向到我单击的关键字的页面,它只是静态的。我试着添加了一个get_absolute_url方法。但它不起作用。我错过了什么?在

模型

      class Meek(models.Model):
         user=models.ForeignKey(User)
         title=models.CharField(max_length=250, unique=True)
         address=models.CharField(max_length=200)
         city=models.CharField(max_length=200)
         state=models.CharField(max_length=200)
         main_view=models.ImageField(upload_to="photos",blank=True, null=True)
         side_view=models.ImageField(upload_to="photos",blank=True, null=True)
         pub_date=models.DateTimeField()

         def __unicode__(self):
             return self.title


         @models.permalink
         def get_absolute_url(self):
             return ('findme', (), {
                'main_view': self.main_view,
                'side_view': self.side_view,
                'address': self.address,
                'city': self.city,
                'state': self.state})

搜索/搜索.html在

^{pr2}$

Urlconf公司

          #url where the objects are posted.
          (r'^find/$', findme), 

         #haystack url where you can search
         (r'^search/', include('haystack.urls')),

观点:

           def findme(request):
               extra_data_context={}
                   #if there's nothing in the field do nothing.
               if request.method=="POST":
                  form=MeekForm(request.POST, request.FILES)
                  if form.is_valid():
                     data=form.cleaned_data
                     newmeeks=Meek(
                         user=request.user,
                         pub_date=datetime.datetime.now(),
                         title=data['title'],
                         main_view=request.FILES['main_view'],
                         side_view=request.FILES['side_view'],
                         address=data['address'],
                         city=data['city'],
                         state=data['state'])
                    newmeeks.save()
                extra_data_context.update({'MeekForm':form})
             else:
                 form = MeekForm()
                 extra_data_context.update({'MeekForm':form})
             extra_data_context.update({'Meeks':Meek.objects.filter(user=request.user)})
             return render_to_response('postme.html',extra_data_context,context_instance=RequestContext(request))

Tags: selfformviewtruecitydatamainaddress
1条回答
网友
1楼 · 发布于 2024-04-25 16:33:06

get_absolute_url中,你的URL被称为findme,你给了它五个参数。在URL配置中,URL在那里,但是:

  • 它不是findme(即,您需要有name="findme"),并且
  • 它也不包含任何参数。在

例如,以下URL同时具有名称和命名参数(有关详细信息,请参见documentation on URLs):

(r'^articles/(?P<year>\d{4})/$', 'news.views.year_archive', name="news_year_archive"),

您需要使用参数main_viewside_viewaddresscity和{}创建一个类似的URL,以便Django可以正确地反转URL并为模型提供一个绝对URL。在

相关问题 更多 >