Как искать запрос в модели Django JSONField?
Я пытаюсь решить эту проблему уже 2 дня, но пока не нашел решения. Я перерыл весь интернет, форум Django и ChatGPT, перепробовал более 50 методов, но ничего не помогает.
Наша модель:
class Order(models.Model):
Payment_Refrence = models.CharField(max_length=300, unique=True)
Order_ID = models.CharField(max_length=300, unique=True, default=unique_order_id)
OrderData = models.JSONField(max_length=100000, null=True, blank=True)
Создание данных заказа
OrderDataCreate = {
'product_title': Product.title,
'product_description': Product.description,
'product_plans': ProductPlans,
'package': Package_name,
}
Выгрузка данных:
CreateOrder = Order.objects.create(
OrderData=json.dumps(OrderDataCreate),
)
После сброса данных в базу данных ~ код из базы данных
"{\"product_title\": \"Redis API Implementition\", \"product_description\": \"Description Here\",}"
Я реализовал это для поиска:
OrderData = Order.objects.all().order_by('-created_at')
if SearchQuery:
SearchQuery = inpvalidator.anyname_validation(SearchQuery)
search_filters = Q(OrderData__contains={'product_title': SearchQuery})
OrderData = OrderData.filter(search_filters)
print(f'Search Filtered=======>{OrderData.count()}')
Я даже попробовал вот это:
OrderData = OrderData.filter(OrderData__product_title__icontains=SearchQuery)
Я не получаю никаких результатов.
Я не уверен, каково содержимое переменной SearchQuery, но следующий фильтр должен работать согласно официальной документации:
OrderData__product_title__icontains=SearchQuery
Вы можете дважды проверить содержимое переменной SearchQuery