- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在我的 django (1.7) 网站中使用 haystack (2.1.1) 和 whoosh。我很高兴,因为它正在发挥作用,但并不完全。该应用程序显示正确的搜索,但当我单击结果时,它不会转到产品页面。看来我没有配置一些使 {{ result.object.get_absolute_url }} 无法正常工作的东西。我希望你们中的任何人都可以帮助我(作为引用,我放置了所有代码)
这是我的应用模型(产品/型号)
from django.db import models
class Products(models.Model):
name = models.CharField(max_length=120)
description = models.TextField()
image1 = models.ImageField(upload_to='product_images', blank=True, null=True)
price = models.FloatField(default=0.00)
slug = models.CharField(max_length=50, blank=False, null=True)
pub_date = models.DateTimeField()
def __unicode__(self):
return str(self.name)
class Meta:
ordering =['-id']
verbose_name = ('Product')
verbose_name_plural = ('Products')
这是我的 search_indexes.py,我将其放在应用程序的同一文件夹中 (products/search_indexes.py)
import datetime
from haystack import indexes
from products.models import Products
class ProductsIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
name = indexes.CharField(model_attr='name')
description = indexes.CharField(model_attr='description')
pub_date = indexes.DateTimeField(model_attr='pub_date')
def get_model(self):
return Products
def index_queryset(self, using=None):
return self.get_model().objects.filter(pub_date__lte=datetime.datetime.now())
我在设置文件中进行了更改
HAYSTACK_CONNECTIONS = {
'default': {
'ENGINE': 'haystack.backends.whoosh_backend.WhooshEngine',
'PATH': os.path.join(os.path.dirname(__file__), 'whoosh_index'),
},
}
在我的模板文件夹“templates/search/indexes/products/products_text.txt”中创建文件
{{ object.name }}
{{ object.description }}
HTML 和 url 与 haystack 网站中的相同(只需将 result.object.title 更改为 result.object.name)。在 URL 中:(r'^search/', include('haystack.urls')) 和 html (templates/search/search.html)
{% extends 'base.html' %}
{% block content %}
<h2>Search</h2>
<form method="get" action=".">
<table>
{{ form.as_table }}
<tr>
<td> </td>
<td>
<input type="submit" value="Search">
</td>
</tr>
</table>
{% if query %}
<h3>Results</h3>
{% for result in page.object_list %}
<p>
<a href="{{ result.object.get_absolute_url }}">{{ result.object.name }}</a>
</p>
{% empty %}
<p>No results found.</p>
{% endfor %}
{% if page.has_previous or page.has_next %}
<div>
{% if page.has_previous %}<a href="?q={{ query }}&page={{ page.previous_page_number }}">{% endif %}« Previous{% if page.has_previous %}</a>{% endif %}
{% if page.has_next %}<a href="?q={{ query }}&page={{ page.next_page_number }}">{% endif %}Next »{% if page.has_next %}</a>{% endif %}
</div>
{% endif %}
{% else %}
{# Show some example queries to run, maybe query syntax, something else? #}
{% endif %}
</form>
{% endblock %}
正如我之前所说,它会进行搜索并显示它。但我不知道为什么 {{ result.object.get_absolute_url }} 不起作用,所以它显示了产品标题,但没有将它们链接到其页面。
最佳答案
您只需在模型类上显式定义一个 get_absolute_url
方法即可:
class Products(models.Model):
...
def get_absolute_url(self):
return "/products/%s/" % self.slug
在此方法中使用 reverse
会更好,这取决于您的 urlconf。更多详情here .
关于django - (haystack + whoosh) {{ result.object.get_absolute_url }} 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27968892/
我有一个简单的“post”模型,它代表我的博客的一个条目: class Post(models.Model): title = models.CharField('title', max_le
我正在尝试制作一个用于列出 django_tables 的通用表格对象。我的一切正常,除了 User 对象上的 get_absolute_urls() 返回: /users// 虽然我可以创建此 UR
您好,我正在创建站点地图,它在我的本地机器上运行良好,但在生产服务器中出现错误object has no attribute 'get_absolute_url'。我有课 class Car(mode
尝试访问我的 sitemap.xml 时,我收到此错误: 'Account' object has no attribute 'get_absolute_url' on line 112. 109.
def get_absolute_url(self): return ('threads_reply', [self.id]) get_absolute_url = model
我对 Django 和编写测试还很陌生。我目前正在从事一个项目,该项目有两个模型,Project 和 Technologies。项目模型与技术模型具有多对多关系。我有一个覆盖 get_queryset
我正在尝试在我的一个模型中对 get_absolute_url 使用 reverse。但是,它返回空白字符串。 网址.py url( regex=r'^$', view=Society
刚开始玩 django,对 get_absolute_url 功能感到困惑。 当我尝试访问某个对象的 url 时,出现了 NoReverseMatch 错误。这是堆栈跟踪 $ python manag
我有一个包含多对多字段的模型,我需要从多对多字段中选择一个 ID。我用 permaling 装饰器装饰了 get_absolute_url 方法。但这不起作用。所以我明白我需要反转关系,从跟踪中很明显
我想在 Django 中启用站点地图生成,所以我执行以下操作,它是如何解释的 here 型号: class Car(models.Model): def __unicode__(self):
这段代码有什么问题? get_absolute_url在我的模板中呈现时为空白,这意味着它在某处失败。 我怀疑这是 slug,因为这是我第一次尝试在 Django 中使用它: 谢谢 型号: class
当我在模板中调用我的模型 get_absolute_url 方法时,我想要一个绝对/完整的 url。在我的入门模型中,我有以下内容: def get_absolute_url(self): r
我正在尝试在 get_absolute_url() 中使用反向函数,但它没有为 View 找到正确的反向匹配。我的 url.py 没有任何错误,因为我可以通过 url“traildetail/4”等访
使用 Django 的分页器和模型方法 get_absolute_url 有什么特殊规则吗?我试图调用这个方法,但它不起作用? 这是我的模板: {% for product in products.
我正在研究 Practical Django Proects,但遇到了困难。我收到错误: Caught ViewDoesNotExist while rendering: Tried tagged_o
我想了解使用 get_absolute_url 调用而不是 url 模板标记有什么好处。 get_absolute_url: class Project(models.Model): @perm
我是 django 的新手,我已经搜索过这个问题,但找不到解决方案。如果解决方案很明显但我似乎无法正确解决,请原谅我。 所以,这就是问题所在。我有两个模型 Parishioner 和 Communit
Django 文档说: get_absolute_url() method to tell Django how to calculate the canonical URL for an objec
刚刚进入 Django Rest Framework。 我有一个简单的示例运行,其中模型通过 REST API 呈现。模型中没有相关字段,只有一堆字符串。 展示 get_absolute_url()
如果我有这样的模型: class Article(models.Model): title = models.CharField(max_length=200) # ... rest
我是一名优秀的程序员,十分优秀!