Как фильтровать данные из базы данных, если они сохранены в разных форматах в 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, так как глина присутствует в каждом из них

Вернуться на верх