Работал ли с JSONField в Django
Python
Middle
Аэрофлот
Работал ли с JSONField в Django
Ответы
Да, работал. `JSONField` в Django позволяет хранить данные в формате JSON прямо в базе данных. Доступен с Django 3.1 и выше (в PostgreSQL изначально, для других БД требует `django-jsonfield-backport` для старых версий).
**Пример использования:**
```
from django.db import models
from django.contrib.postgres.fields import JSONField # Для Django < 3.1
from django.db.models import JSONField # Для Django ≥ 3.1
class Product(models.Model):
name = models.CharField(max_length=100)
attributes = JSONField(default=dict) # Хранение произвольных атрибутов
```
**Особенности:**
- Поддерживает валидацию JSON на уровне модели.
- Для запросов использует специальные lookup-ы: `__contains`, `__has_key`, `__has_any_keys` и др.
- Автоматически сериализует/десериализует Python-объекты (dict, list) при сохранении/загрузке.
**Пример запроса:**
```
# Поиск товаров с определённым атрибутом
Product.objects.filter(attributes__has_key='color')
```