[英]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.