Фильтр django __contains не возвращает значения для списка, в то время как __in возвращает.
am essentially trying to perform a select * from xyxtable where col like '%value%' on a list of alphanumeric values from another dataframe column(prev_df['VendorPartNumber]. I thought the filter __contains= should do the trick. but this returns nothing
product_df=pd.DataFrame(Product.objects.filter(legacy_productid__contains=prev_df['VendorPartNumber']).values('id','legacy_productid'))
В любом случае, использование __in для фильтрации работает (просто результат не тот, который я хочу, поскольку __in проверяет равенство)
product_df=pd.DataFrame(Product.objects.filter(legacy_productid__in=prev_df['VendorPartNumber']).values('id','legacy_productid'))
Я попробовал несколько способов, таких как
product_df= Product.objects.all()
for search_term in perv_df['VendorPartNumber']:
product_df = product_df.filter(legacy_productid__contains=search_term)
или
product_df=pd.DataFrame(Product.objects.filter(reduce(operator.and_, (Q(legacy_productid__contains=x) for x in prev_df['VendorPartNumber']))).values('id','legacy_productid'))
что я упускаю?
Предполагаю, что вы хотите получить id из legacy_product.
В этом случае вы должны сделать legacy_product_id__contains='foobar'.