【发布时间】:2018-02-02 08:35:51
【问题描述】:
我正在尝试制作一个填充脚本,以某种方式使用循环填充模型。下面是代码的样子:
models.py
class ExampleModel(models.Model):
name = models.CharField(max_length=32)
code = models.CharField(max_length=3)
description = models.TextField(max_length=128)
文本.txt
001 Name One
Description one
Description one line two
023 Name Two
Description two
Description two line two
Description two line three
AAA Name Three
BBB Name Four
Description three
填充.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()
现在,填充脚本可以将任何以三字符字符串开头的行分成两部分,将三字符字符串作为代码,将字符串的其余部分作为名称。我想要做的是使整个文本(其中包含描述的文本)在一个代号行下方和另一行上方等于上面代号的描述字段。有谁知道如何在 populate.py 中编写该循环?谢谢。
【问题讨论】: