【问题标题】:Insert list in sqlite table with django使用 django 在 sqlite 表中插入列表
【发布时间】:2019-02-04 15:21:59
【问题描述】:

我是 Django 新手,需要一些帮助。我正在尝试用 Djnago 制作 sqlite3 数据库。我在models.py中创建了类,如下所示:

 class Data(models.Model):
       vendor_name = models.CharField(max_length=100)
       product_name = models.CharField(max_length=100)
       versions = models.TextField()
       description = models.TextField()
       date = models.DateTimeField(default=timezone.now)

我正在尝试在名为版本的字段中插入数据列表。列表如下所示:

['8.0.1', '8.0.2', '8.0.3', '8.1.2']

最后我想检查列表是否包含特定值,例如我想检查列表是否包含 8.1.2。如果值在列表中,它应该返回 True。我可以像这样在数据库中插入数据:

   data = Data(vendor_name='paloalto', product_name='PA', versions=['8.0.1', '8.0.2', '8.0.3', '8.1.2'], description='...')
   data.save()

我不知道如何检查数据库是否在版本字段中包含特定值,我将不胜感激。

【问题讨论】:

    标签: python django database sqlite


    【解决方案1】:

    添加一个新的实体版本。然后在 Data 和 Versions 之间建立 1 对 n 的关系

    class Data(models.Model):
       vendor_name = models.CharField(max_length=100)       
    
    class Versions(models.Model):
         data = models.ForeignKey(Data)
         version = models.CharField()
    
    def query():
        Versions.objects.filter(data__vendor_name='lala', version=3)
    

    【讨论】:

    • 如何将列表中的值插入到表中?
    • 您创建版本对象并保存它们。您现在有 2 个数据库表。在 django 模型文档中阅读一些关于关系的信息。
    猜你喜欢
    • 2019-03-27
    • 2011-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-29
    • 2020-02-20
    相关资源
    最近更新 更多