У меня есть две разные модели, каждая из которых имеет разные столбцы, связанные одним идентификатором. Я хочу создать поисковую страницу, которая будет искать результаты обеих моделей, объединяя их с идентификатором и отображая результаты.
Это простое sql, которое я хочу выполнить:
'SELECT "SSDatabase_metadataform".*, "SSDatabase_uploadmeta"."datafile", CASE WHEN "SSDatabase_metadataform"."Embargo_Time" <= current_date THEN "SSDatabase_uploadmeta"."path_id" END AS link from "SSDatabase_metadataform" INNER JOIN "SSDatabase_uploadmeta" ON "SSDatabase_metadataform"."id" = "SSDatabase_uploadmeta"."path_id" order by "id"'
Я создаю поисковый запрос, и он отлично работает, показывая данные обеих моделей, но показывает их отдельно. Я не уверен, как показать результаты, соединяющие обе выборки
class SearchResultsView(ListView):
template_name = 'searchresults.html'
def get_queryset(self): # new
query = self.request.GET.get('q')
meta_list= Metadataform.objects.filter(Q(id__icontains=query) | Q(Authors_Name__icontains=query) | Q(Affliations__icontains=query) | Q(Methods__icontains=query) | Q(Instruments__icontains=query) | Q(Software__icontains=query)| Q(Models__icontains=query)| Q(Device__icontains=query))
dataset_list = uploadmeta.objects.filter(Q(datafile__icontains=query))
object_list = list(chain(meta_list, dataset_list))
return object_list
И это моя страница html. Файл данных из другой модели не отображается. при поиске файла данных другие результаты не отображаются
<table class="table table-striped">
<thead>
<tr>
<th>Meta ID</th>
<th>Author</th>
<th>Affiliations</th>
<th>Methods</th>
<th>Instruments</th>
<th>Models</th>
<th>Device</th>
<th>Configuration</th>
<th>Download</th>
</tr>
</thead>
<tbody>
{% if object_list %}
{% for a in object_list %}
<tr>
<td><a id="idclicked" href="listdec/{{a.id}}/" title="click to see Metadata">{{ a.id }}</td></a>
<td>{{ a.Authors_Name }}</td>
<td>{{ a.Affliations}} </td>
<td>{{ a.Methods}}</td>
<td>{{ a.Instruments}}</td>
<td>{{ a.Models}}</td>
<td>{{ a.Device}}</td>
<td>{{ a.Configuration}}</td>
<td>
{{ a.datafile }}
</td>
</tr>