使用循环填充Django中的模型

2024-06-02 04:52:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试制作一个填充脚本,用循环以某种方式填充模型。下面是代码可能的样子:

在模型.py在

class ExampleModel(models.Model):
    name = models.CharField(max_length=32)
    code = models.CharField(max_length=3)
    description = models.TextField(max_length=128)

在文本.txt在

^{pr2}$

在填充.py在

def populate():
    with open("text.txt") as f:
        content = f.readlines()

    for line in content:
        fields = line.split(' ', 1)
        if len(fields[0]) == 3 and ( fields[0].strip().isupper() or fields[0].strip().isdigit() ):
            code = fields[0].strip()
            name = fields[1].strip()
            print("%s-%s" % (code, name))
            add_object(name=name, code=code)

def add_object(name, code, periship_amount):
    f = ExampleModel.objects.get_or_create(name=name, code=code)[0]
    return f

if __name__ == '__main__':
    populate()

现在,population脚本可以取任何以三个字符字符串开头的行,并将其分成两行,使三个字符的字符串成为代码,将字符串的其余部分放入名称中。我想让上面一行的名称和另一行代码的名称相等。有人知道如何在populate.py?谢谢您。在


Tags: 字符串代码namepy模型脚本名称fields
1条回答
网友
1楼 · 发布于 2024-06-02 04:52:26

最好对population使用dumpdata和loaddata。在

使用dumpdata,您可以获得一个包含来自db的数据的文件,使用loaddata,您可以将这些fixture加载到db中。在

https://docs.djangoproject.com/en/2.0/howto/initial-data/

相关问题 更多 >