1

djangoアプリがあり、既存のデータをテキストファイルから新しいデータベースにインポートする必要があります。通常、私は次のようなことをします。

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

これは正常に機能しますが、データ検証は行われません(フィールドの一致するデータ型を除く)。

ModelFormWebインターフェースを介してデータを入力するために、(メソッド内で)すべてのデータ検証を行うフォームをいくつか作成しましたclean()。入力として使用してフォームにデータを入力して検証する方法を知っていますがrequest.POST、Pythonシェルでも同じことを行うことは可能ですか?どういうわけか、元のデータをdictにフィードして、フォームにこれらのデータを入力できますか?

4

1 に答える 1

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()
于 2012-09-07T19:22:01.407 に答える