我有一個非常基本的類,它看起來像下面這樣:的Django 1.7遷移無法序列化一個類的方法
class Car(Model):
name = CharField(max_length=255, unique=True)
@classmethod
def create_simple_examples(cls):
for c in ['Sedan', 'Coupe', 'Van', 'SUV']:
cls.objects.get_or_create(name=c)
@classmethod
def get_default(cls):
c, _ = cls.objects.get_or_create(name='Sedan')
return c
def __unicode__(self):
return self.name
我試圖將它添加到一個Django應用程序。我有兩個類的方法來1.快速填充表的函數,2.抓住一個經常使用的默認方法。
當我運行
python manage.py makemigrations myapp
我收到以下錯誤
ValueError: Cannot serialize: <bound method ModelBase.get_default of <class 'crunch.django.myapp.models.Car'>>
我不太知道爲什麼它試圖序列我get_default
功能,這不是真正的表遷移的一部分本身。任何幫助將不勝感激
UPDATE我想我可能已經找到了問題的根源(仍然不知道如何解決,雖然它...)
我有其他類被FKing我新類,默認使用我的默認上面...像這樣的事情
class OtherClass(Model):
car = ForeignKey(Car, default=Car.get_default)
它看起來像遷移正在試圖序列化的功能,因爲這一點。有關如何解決此問題的任何提示?
嘗試移動默認的保存方法,或者你是怎麼得到這個post_save等 – madzohan
工作,最後? –