首页 > 解决方案 > 如果数据库中的数据以不同的格式保存在 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 的记录,因为粘土中的每一个都存在

标签: djangopython-2.7django-modelsdjango-viewsdjango-templates

解决方案


推荐阅读