django - 如果数据库中的数据以不同的格式保存在 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 的记录,因为粘土中的每一个都存在
解决方案
推荐阅读
- javascript - 如何更改javascript对象的键名和值
- flutter - 像引导程序一样在 Flutter 中构建布局
- html - 如何偏移一些表格单元格
- docker - 无法从 kubernetes 中的公共 ip 访问服务
- java - 返回状态消息
- node.js - 如何更改我的字段以保存对象数组?
- css - 用css变量减轻mixin不起作用
- laravel - Homestead 9 新盒子创建一个新的 Laravel 项目作曲家无法扫描 /vendor/phpunit/php-code-coverage/src/ 中的类
- ruby-on-rails - 简单形式:如何在集合关联中的每个复选框的文本值周围添加跨度标记
- guid - 如何在 EFI 应用程序中生成 GUID?