У меня в приложении есть два класса Model. Когда я выполняю поиск, я получаю содержимое модели двух классов в моем приложении в результатах поиска.Я могу добавить только одну прямую ссылку на искомый класс Model.Итак, как я могу добавить одну ссылку на все результаты поиска в моем классе?
Мой Views.py
def news_story(request, slug, *args, **kwargs):
print(args)
print(kwargs)
post = get_object_or_404(Post, slug=slug)
form = CommentForm(request.POST, request.FILES)
if request.method == "POST":
if form.is_valid():
#form.instance.user = request.user
form.instance.post = post
form.save()
form = CommentForm()
return HttpResponseRedirect(reverse("news_story", kwargs = {
'slug': slug
}))
comment = Comment.objects.all().order_by("-timestamp")
if comment:
comment = comment.filter(post=post)
try:
itm = Post.objects.get(slug=slug)
except Post.DoesNotExist:
itm = None
old_post = Post.objects.all()[:8]
new_post = Post.objects.all().order_by("-timestamp")[:3]
template = loader.get_template('news_story.html')
context = {
'Post': itm,
'post': comment,
'form': form,
'old_post': old_post,
'new_post': new_post,
}
return HttpResponse(template.render(context, request))
def entertainment_story(request, slug, *args, **kwargs):
print(args)
print(kwargs)
post = get_object_or_404(Entertainment, slug=slug)
try:
itm = Entertainment.objects.get(slug=slug)
except Entertainment.DoesNotExist:
itm = None
template = loader.get_template('entertainment_story.html')
context = {
'Entertainment': itm
}
return HttpResponse(template.render(context, request))
def search_results(request):
query = request.GET.get('q')
if query:
post = Post.objects.filter(
Q(title__icontains=query) |
Q(author__icontains=query) |
Q(description__icontains=query)
).distinct()
entertainment = Entertainment.objects.filter(
Q(title__icontains=query) |
Q(author__icontains=query) |
Q(description__icontains=query)
).distinct()
queryset = chain(post, entertainment)
context = {
'queryset': queryset,
}
return render(request, 'search_results.html', context)
My Template Search_results
<h2 >This is the result of your search:</h2>
{% for post in queryset %}
<div class="col-md-4"> <!-- COLS STARTS HERE -->
<div class="thumbnail">
<a href="{% url 'news_story' slug=post.slug %}">
<img src="{{ MEDIA_URL }}{{ post.blog_image.url }}">
<div class="description">
<p>{{ post.description }}</p>
</div>
<div class="caption">
<p>{{ post.title }}</p>
</div>
</a>
<div class="author">
<p>Posted on {{ post.timestamp }} <br />by {{ post.author }}</p>
</div>
</div>
</div> <!-- COLS ENDS HERE -->
{% empty %}
<div class="row"> <!-- ROW STARTS HERE -->
<h3 style="text-align: center">There is no search result</h3>
<p style="text-align: center">If you are not happy with the result, please do another search.</p>
</div>
{% endfor %}
</div>
Проблема href="news_story"
в шаблоне search_results
- это проблема, только онаработает для news_story
сообщения и не работает для сообщения entertainment_story.Как я могу создать одну и ту же ссылку для news_story
и entertainment_story
.Спасибо!