私はhaystackを使用しています。私はチュートリアルに従います。私はhaystackがオブジェクトを返す場合、なぜ私はresult.objects.get_absolute_urlを使用できません。
を追加し、私はsearch/indexes/blog/post_text.txt
を作成して、私のviews.pyで
{{ object.title }}
{{ object.tags.all|join:", " }}
{{ object.body }}
これを追加し、私は設定に干し草を追加し、移行し、その後、私は、テンプレートでこの
class PostIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
publish = indexes.DateTimeField(model_attr='publish')
def get_model(self):
return Post
def index_queryset(self, using=None):
"""Used when the entire index for model is updated."""
return self.get_model().objects.all()
を作成します
from haystack.query import SearchQuerySet
次にav IEW
def post_search(request):
form = request.GET.get('q')
results = SearchQuerySet().models(Post).filter(content=form)
# count total results
total_results = results.count()
template = 'blog/post/search.html',
context = {
'form': form,
'results': results,
'total_results': total_results
}
return render(request, template, context)
と検索テンプレート
{% for result in results %}
<p>{{result.publish}}</p>
<a href="{{ result.object.get_absolute_url }}">{{ result.object.title }}</a>
が、公開され返されるだけの事で機能。私が要素を調べると、hrefは空白になります。私はこの
{{results}}
を行う場合、私は、これらが
{{result.object.publish}}<br>
を動作しませんが、これは {{result.publish}}
意志この
[blog.post.pk(2)] or something like that
のような何かを得ますアクセスするには
{{result.object.body}}<br>
{{result.object.title}}<br>
{{result.object.slug}}<br>
私は戻って、チュートリアルは、私が間違って何をやっていると言うようなものではありません。この
class PostIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
publish = indexes.DateTimeField(model_attr='publish')
# added this
title = indexes.CharField(model_attr='title')
body = indexes.CharField(model_attr='body')
slug = indexes.CharField(model_attr='slug')
def get_model(self):
return Post
def index_queryset(self, using=None):
"""Used when the entire index for model is updated."""
return self.get_model().objects.all()
を追加しますか?
私は私の結果は、このresult.title
ない
result.object.title
と私は見て、読んでチュートリアルから、彼らが行うすべては、この
class PostIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
publish = indexes.DateTimeField(model_attr='publish')
def get_model(self):
return Post
def index_queryset(self, using=None):
"""Used when the entire index for model is updated."""
return self.get_model().objects.all()
ですが、すべてにアクセスすることができますをやって買う取得
このように
result.object.title
result.object.publish
result.object.get_absolute_url
明らかにオブジェクト全体にアクセスしていますが、なんらかの理由で私はそうではありません。私がビデオのように見えるかもしれない何かへの指導や提案は となります。私は本当になぜオブジェクト全体にアクセスしていないのか分からない。
編集:
マイモデルです。PY
class Post(models.Model):
STATUS_CHOICES = (
('draft', 'Draft'),
('published', 'Published'),
)
title = models.CharField(max_length=250)
slug = models.SlugField(max_length=250,
unique_for_date='publish')
image = models.ImageField(null=True, blank=True)
author = models.ForeignKey(User,
related_name='blog_posts')
body = models.TextField()
publish = models.DateTimeField(default=timezone.now)
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
status = models.CharField(max_length=10,
choices=STATUS_CHOICES,
default='draft')
video = models.BooleanField(default=False)
video_path = models.CharField(max_length=320,
null=True,
blank=True,)
class Meta:
ordering = ('-publish',)
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse('blog:post_detail',
args=[self.publish.year,
self.publish.strftime('%m'),
self.publish.strftime('%d'),
self.slug])
objects = models.Manager() # The default manager.
published = PublishedManager() # Our custom manager.
tags = TaggableManager()
私はアイブが更新され、私のスキーマを再構築し、私はマイク・ヒバートが続き、一例でジャンゴという本を読ん
Django==1.9.4
django-crispy-forms==1.6.0
django-haystack==2.4.1
django-taggit==0.18.0
Pillow==3.1.1
pysolr==3.4.0
pytz==2016.1
requests==2.9.1
python 3.5
を使用していますが逐語的にそれらをfollwed、まだそれを把握するカント。これはバグの一部ですか?
あなたのモデルでこのメソッドを定義する必要があると思います。 HaystackはURL自体を推測することはできないので、あなたは 'reverse()'でurlを構築して返すべきです。 –
応答に感謝します。私が見たビデオのどれも、あなたが言ったことや、私が読んだことのない何かをしたことはありません – losee
クイック検索の後、あなたと同じ問題を抱えている人が見つかりました:http://stackoverflow.com/questions/ 27968892/haystack-whoosh-result-object-get-absolute-url-is-workingを取得します。ドキュメントにはアップデートが必要だと思います。 –