繁体   English   中英

如何使用python列表在Django数据库中输入数据?

[英]How to use a python list to input data in a Django db?

假设我有一个带字段的Django模型。

class Category(models.Model):
    cat_name = models.CharField(max_length = 200)

我有这个python脚本list.py。

def getList():
   name_list = ['a','b','c']
   return name_list

如何调用getList创建三个条目:a,b,c是django中三个独立的Category条目? 我可以将它们放在相同的目录中,然后将getList导入到我的网站目录中的一个文件中并运行它吗? 还是可以在终端上运行它?

谢谢。

您都可以做。 如果您正在寻找可重用的东西,则应考虑创建一个“ initial_data.json”固定装置,该装置将在每次运行syncdb时加载。 如果您只想运行一次或临时运行,则可以假定所有内容都位于同一目录中,从而执行以下操作:

from .list import get_list


class Category(models.Model):
    cat_name = models.CharField(max_length=200)

    def __unicode__(self):
        return self.cat_name

    @classmethod
    def create_from_list(cls):
        values_list = get_list()
        for value in values_list:
            cls.objects.create(cat_name=value)

然后在视图中或任何地方执行类方法:

# views.py

from .models import Category


def my_view(request):
    Category.create_from_list()
    ...

请参阅: https : //docs.djangoproject.com/en/1.6/howto/initial-data/了解有关灯具的更多信息。

您可以使用bulk_create方法https://docs.djangoproject.com/en/dev/ref/models/querysets/#bulk-create

在您的情况下:

Category.objects.bulk_create([Category(cat_name=name) for name in getList()])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM