1
views.py問題在搜索和顯示來自報告模型報告
def search(request):
"""""""
if 'search' in request.POST:
search_keyword = request.POST.get('search_keyword')
reports = reports.filter(Q(incident_description__icontains=search_keyword) | Q(incident_number__icontains=search_keyword) | Q(reportperson__name__icontains=search_keyword))
"""""""
return render(request,'search.html',{'searchform':searchform})
models.py
class Report(models.Model):
user = models.ForeignKey(User, null=False)
incident_number = models.CharField('Incident Number', max_length=100)
incident_description = models.TextField('Incident description', null=True, blank=True)
class ReportPerson(models.Model):
report = models.ForeignKey(Report)
action_type = models.CharField(max_length=100, choices=ACTION_TYPE)
name = models.CharField('Name', max_length=100)
上面視圖執行關鍵字搜索(在模型上場數據搜索)和報告人模型。
存儲在報告模型中的報告可以有兩個以上的報告人詳細信息。
在數據庫中的值會是這樣,
如果報告表和Reportperson表中的值是在圖像中,報表模型是
reportperson模型
這裏,報告有兩個reportperson detail.If ip在這種情況下執行搜索,同樣的報告會顯示兩次。根據報告人的詳細信息數量,顯示同一報告的次數顯示變化。
我想知道如何處理這個,這是因爲我正在使用來自Reportperson表的名稱搜索。問題發生在這個report=reports.filter(....| Q(reportperson__name__icontains=search_keyword))
,。需要幫助。
如果我使用不同的搜索函數不起作用 – user2086641
使用distinct('pk')或僅使用distinct()?有一個巨大的差異... – gpichot
隨着醫生的幫助我解決了這個問題。謝謝加布 – user2086641