I'm using Django 1.7.1. My model looks like this:
from datetime import datetime
from django.db import models
class myModel(models.Model):
x = models.CharField(max_length=254,null=True, blank=True,)
Everything works perfectly fine.
However, when I add the following attribute to myModel, it breaks:
y = models.DateTimeField(default=lambda: datetime.utcnow() + timedelta(days=1), editable=False)
manage.py makemigrations
gives me the following error:
ValueError: Cannot serialize function: lambda
This seems like a known bug: http://comments.gmane.org/gmane.comp.python.django.scm/125724
So how can I work around it? I need the value of y
to be automatically set by default to 24 hours from the moment the model was created.
The migrations documentation addresses this:
So the solution is simple: just define the function in module scope rather than using a lambda.