Как фильтровать данные из базы данных, если они сохранены в разных форматах в django
рассмотрим, здесь мои данные могут быть сохранены в базе данных в двух форматах.
Моя база данных выглядит как
id soil_type
1 Acid;Clay;Damp;Loam;Well drained
2 Acid;Clay;Damp;Loam;Neutral;Well drained
3 [u'Clay', u'Damp']
4 [u'Acidic', u'Alkaline']
5 [u'Clay']
здесь models.py
class Items(models.Model):
SOIL_TYPE_CHOICES = (
('Acidic','Acidic'),
('Alkaline','Alkaline'),
('Chalk','Chalk'),
('Clay','Clay'),
('Damp','Damp'),
('Dry','Dry'),
('Loam','Loam'),
('Neutral','Neutral'),
('Sandy','Sandy'),
('Waterlogged','Waterlogged'),
('Well-drained','Well-drained'),
)
soil_type = models.CharField(max_length=500, blank=True, null=True)
В настоящее время я фильтрую в файле views.py следующим образом
soil_type = request.GET.get('soil_type', '')
[# print("soil type",soil_type) - ('soil type', u'Clay') ]
items = Items.objects.filter(soil_type__icontains = soil_type)
Здесь id = 1,2 сохраняются при загрузке данных через csv файл, а id = 3,4,5 сохраняются вручную (например, при ручном добавлении элемента или создании элемента)
теперь, что мне нужно, если фильтр выбирает глину, то мне нужно получить записи id = 1,2,3,5, так как глина присутствует в каждом из них