Контекст: У меня есть Подшипник с большим количеством измерений (внутренняя, внешняя и т. Д. c), но каждая марка ставит номер на тот же самый Подшипник (ту же комбинацию измерений), который называется «Эквивалент». поэтому подшипник может иметь один, ни один из множества эквивалентов. Примерно так:
Теперь я хочу отфильтровать информацию по всем атрибутам подшипников, но также по эквивалентному номеру SQL Пример:
select * from bearing where (any atribute of bearing) = x;
, но также можно сделать это
select * from bearing inner join equivalent where equivalent.number = x;
У меня есть искатель, подобный этому:
filters.py:
class BearingFilter(django_filters.FilterSet):
class Meta:
model = Bearing
fields = [
'D_INT_A',
'D_INT_A1',
'D_EXT_D',
'D_EXT_D1',
'D_ESP_B',
'D_ESP_C',
'D_ESP_T',
'N_PARTE_1',
'N_PARTE_2',
'FK_TIPO_ROD',
]
views.py:
def searcher(request):
list_Bearing = Bearing.objects.all()
list_Equiv = Equivalent.objects.all()
list_Bearing_filter = BearingFilter(request.GET, queryset=list_Bearing)
return render(request, 'searcher.html', {'equiv': list_Equiv , 'bearing_filter' : list_Bearing_filter })
html выглядит примерно так:
for x in bearing_filter.qs
Row with Bearing Info
Modal With Equivalent info
for y in equiv
if x.id = y.Bearing_fk
y.Number - y.Brand
endif
endFor
endfor
Я все еще учусь django + python, и я не знаю, как к этому подойти. Может быть, django -фильтр не подходит в этом случае, я не знаю