ฉันพยายามสร้างการค้นหาเว็บไซต์ Django ที่ฉันกำลังสร้างและในการค้นหานั้นฉันกำลังค้นหาใน 3 แบบที่แตกต่างกัน และเพื่อให้ได้เลขหน้าในรายการผลการค้นหาฉันต้องการใช้มุมมอง object_list ทั่วไปเพื่อแสดงผลลัพธ์ แต่การทำเช่นนั้นฉันต้องรวม 3 ชุดแบบสอบถามเป็นหนึ่ง
ฉันจะทำสิ่งนั้นได้อย่างไร ฉันเคยลองแล้ว:
result_list = []            
page_list = Page.objects.filter(
    Q(title__icontains=cleaned_search_term) | 
    Q(body__icontains=cleaned_search_term))
article_list = Article.objects.filter(
    Q(title__icontains=cleaned_search_term) | 
    Q(body__icontains=cleaned_search_term) | 
    Q(tags__icontains=cleaned_search_term))
post_list = Post.objects.filter(
    Q(title__icontains=cleaned_search_term) | 
    Q(body__icontains=cleaned_search_term) | 
    Q(tags__icontains=cleaned_search_term))
for x in page_list:
    result_list.append(x)
for x in article_list:
    result_list.append(x)
for x in post_list:
    result_list.append(x)
return object_list(
    request, 
    queryset=result_list, 
    template_object_name='result',
    paginate_by=10, 
    extra_context={
        'search_term': search_term},
    template_name="search/result_list.html")
แต่มันไม่ได้ผล ฉันพบข้อผิดพลาดเมื่อพยายามใช้รายการนั้นในมุมมองทั่วไป รายการไม่มีแอตทริบิวต์โคลน
ไม่มีใครรู้ว่าฉันสามารถผสานสามรายการpage_list, article_listและpost_list?
unionเห็นคำตอบเกี่ยวกับ