7👍
✅
You need to make it callable
default=lambda: uuid.uuid4().hex
UPDATE
As @ZulwiyozaPutra noted. Solution fails while migration, what i am totally forgot is that Django cannot serialize Lambdas.
Solution would be defining new function with desired behavior:
def hex_uuid():
return uuid.uuid4().hex
and using this function as default argument as callable:
identifier = models.CharField(default=hex_uuid, ...)
-1👍
class Model(models.Model):
identifier = models.CharField(max_length=32, primary_key=True, default=uuid.uuid4, editable=False)
if you use uuid.uuid4() the function will be executed on runserver, just give the signature and django will do the rest.
- [Django]-Whats the correct way to use and refer to a slugfield in a django 1.3
- [Django]-How to config apache to run Django (mod_WSGI) and Rails (Passenger)
- [Django]-Django-lfs "No module named appconf"
Source:stackexchange.com