如何在创建Django模型时填充表格?

1 投票
2 回答
1215 浏览
提问于 2025-04-16 16:54

我有一个城市的列表(简单的CSV文件),我想在创建城市模型的时候,把这些城市填充到城市表里。

class City(models.Model):
    city = modeld.CharField('city_name', max_length=50)

    class Meta:
        berbuse_name =....
        ...........

    def __unicode__(self):
        return self.city

现在,我想知道怎么在创建模型(数据库表)的时候只做一次这个操作。

我在这里尝试这样做,因为我觉得这样很合理(就像在MS-SQL和其他地方写SQL脚本一样)。

编辑:好吧,我想我问错问题了……也许我应该问这个:我该怎么写一个Python函数,把CSV文件转换成JSON(同样是在模型创建的时候),而且我应该这样做吗??

有没有人能帮我一下?

2 个回答

5

我们通常会这样做。

import csv
from my_django_app.forms import CityForm
with open( "my file", "rb" ) as source:
    rdr = csv.DictReader( source )
    for row in rdr:
        form= CityForm( **row )
        if form.is_valid(): 
            form.save()
        else:
            print form.errors

这一步是用来验证和加载数据的。

数据加载完成后,你可以使用 django-admin dumpdata 命令来保存一个从已加载模型生成的JSON文件。

撰写回答