Context:我有一个带有很多度量(内部,外部等)的方位,但是每个品牌在相同的方位(相同的度量组合)上都标记了一个数字,称为“等效”。因此,一个轴承可以有一个,无或多个等价物。像这样的东西:
现在,我想从所有方位属性中过滤信息,但也要过滤等效的数字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-filter在这种情况下不好,我不知道
[嗨,我对此问题有点困惑。目标是什么?如果要过滤在某些字段中具有相同值的对象,则无需其他等效模型,例如,如果您具有“帖子”模型,并且想要具有相同标题和相同发布日期的帖子:
eq_posts = Post.objects.filter(title=my_title, published=datetime.strptime('Jun 1 2005 ', '%b %d %Y'))
对于任何字段,都可以进行过滤,但也请查看Django queryset doc中的“注释”。您可以将过滤器放置在所需的任何字段上,并使每个对象的查询集具有相同的值。