使用模型表格验证数据导入django?

时间:2012-09-07 19:15:43

标签: django

我有一个django应用程序,我需要将现有数据从文本文件导入新数据库。 通常我会做这样的事情:

for i in lines():
    a = Mymodel()
    a.field1 = i[0]
    a.field2 = i[0]
    a.save()

这样可以正常工作,但不会进行数据验证(字段的匹配数据类型除外)。

为了通过Web界面输入数据,我写了一些ModelForm表单,它们为我做了所有数据验证(在clean()方法中)。我知道如何使用request.POST作为输入来填充和验证表单,但是在python shell上也可以这样做吗?我可以以某种方式将我的原始数据输入到一个字典中并使用这些数据填充表单吗?

1 个答案:

答案 0 :(得分:1)

是,

在forms.py

class FormA(forms.ModelForm):
   class Meta:
      model = Mymodel
   def clean_field1(self):
      #logic here
      #return cleaned field1
在views.py中

 def populate_dict(line):
     dict = {'field1': line[0], 'field2': line[2], ... }
     return dict

 def populate(request):
    for line in lines():
       initial = populate_dict(line)
       form = FormA(initial=initial)
       if form.is_valid():
         form.save()