1

私のmodel.pyは:

Sample(models.Model):
   id=models.DecimalField(max_digits=8, decimal_places=0, primary_key=True)
   name=models.CharField(max_length=12)
   length=models.DecimalField(max_digits=8, decimal_places=0)
   def save(self):
      super(Sample,self).save()

私のtests.pyで:

class SampleTestCase(TestCase):
def setUp(self):
self.sample=Sample.objects.create(id=12,name='xyz', length=33)
print self.sample.length
print "hello in setup"

私の質問は、フォームまたはadminを使用している場合、データはエラーなしで正常に保存されますが、テストしようとするとエラーが発生します。

self.sample=Sample.objects.create(id='12',name='iftikhar', length=33)
File "/usr/local/lib/python2.7/dist-packages/django/db/models/manager.py", line 149, in create
return self.get_query_set().create(**kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py", line 414, in create
obj.save(force_insert=True, using=self.db)
TypeError: save() got an unexpected keyword argument 'force_insert'

models.pyから保存関数を削除している場合、なぜこれがここで発生するのかを誰かに教えてもらえますか?テストは正常に実行されています

4

1 に答える 1

0

save引数をとらないようにメソッドをオーバーライドしました。

試す:

def save(self, *args, **kw):
      super(Sample,self).save(*args, **kw)

または、このオーバーライドメソッドを完全に省略します。何もしていません。

于 2013-03-12T06:33:48.283 に答える