Как выполнить поиск по модели в django?

Пользователь

от hermina.hauck , в категории: Python , 2 месяца назад

Как выполнить поиск по модели в django?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от marisa , 2 месяца назад

@hermina.hauck 

Для выполнения поиска по модели в Django вы можете использовать методы filter() и exclude() менеджера модели.


Например, если у вас есть модель Product с полями name и price, вы можете выполнить поиск по имени продукта, используя метод filter():

1
2
3
4
5
6
7
8
from django.db import models

class Product(models.Model):
    name = models.CharField(max_length=100)
    price = models.DecimalField(max_digits=5, decimal_places=2)

# Выполнение поиска по имени продукта
products = Product.objects.filter(name__icontains='apple')


Здесь name__icontains='apple' означает, что вы ищете подстроку "apple" в поле name без учета регистра.


Вы также можете использовать методы exclude() и операторы сравнения, чтобы уточнить поиск:

1
2
3
4
5
6
7
8
# Выполнение поиска по цене продукта (больше 10)
products = Product.objects.filter(price__gt=10)

# Выполнение поиска по цене продукта (меньше или равно 50)
products = Product.objects.filter(price__lte=50)

# Выполнение поиска с использованием операторов сравнения и исключения
products = Product.objects.filter(price__gte=10, price__lte=50).exclude(name='apple')


Это примеры базового поиска по модели в Django. Вы также можете использовать более сложные запросы, комбинируя различные методы и условия, в зависимости от ваших потребностей.