我在三個模型中搜索,所有模型都有不同的細節視圖,但我無法弄清楚如何告訴django根據其模型定位視圖。 這是我在模型中搜索的視圖
def search_item(request): 結果 = [] search_item = request.GET.get("search")if search_item:
q = Q(title__icontains=search_item) | Q(written_by__icontains=search_item)
for model in (crypto, News, Movie):
結果.extend(model.objects.filter(q)
return render(request, "result.html"/span>, {"results"/span>: results})
和該模板
{% for result in results %}。
< a class="blog-card" href="">/span>
<div class="card col-4"/span> style="width: 18rem;">
<img src="{ result.title_image. url }}" class="card-img-top" width="100%" height="200px">
<div class="card-body"/span>>
<h5 class="card-title text-center"/span> style="color: black">{{ result. title|truncatewords:7 }}</h5>。
<p class="card-text text-center" style="color: black">{{ result. info|truncatewords:10 }}</p>
<p class=" number text-center" style="color: black;"> Wriiten By:<strong> {{ result. written_by }}</strong></p>
<p class="last text-center"/span> style="color: black;">最后更新:<strong>{{ result. joined_date }}</strong></p>
</div>/span>
</div>/span>
</a>
{% endfor %}
而且所有的模型都有不同的細節視圖,那么如何做到這一點呢? urls.py
path('crypto/<slug:title>/',views.tt_read,name="tt_read")。
path('news/<slug:title>/',views.news_read,name="news_read") 。
path('movie/<slug:title>/',views.movie_read,name="movie_read") 。
path('penmen/search/', views.search_item,name='search')
歡迎任何幫助和建議
。uj5u.com熱心網友回復:
為每個模型定義一個get_absolute_url()方法。
示例:
from django.urls import reverse
class News(models.Model)。
...
def get_absolute_url(self)。
return reverse('news_read', args=[lug(self.title)])
然后在你的模板中你可以直接做。
...
<a class="blog-card" href="{{result.get_absolute_url}}" >
...
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/307459.html
標籤:
