Search code examples
pythondjangodjango-modelsdjango-admin

How can I set a default value for a field in a Django model?


Suppose I have a model:

class SomeModel(models.Model):
    id = models.AutoField(primary_key=True)
    a = models.CharField(max_length=10)
    b = models.CharField(max_length=7)

Currently I am using the default Django admin to create/edit objects of this type. How do I remove the field b from the Django admin so that each object cannot be created with a value, and rather will receive a default value of 0000000?


Solution

  • Set editable to False and default to your default value.

    http://docs.djangoproject.com/en/stable/ref/models/fields/#editable

    b = models.CharField(max_length=7, default='0000000', editable=False)
    

    Also, your id field is unnecessary. Django will add it automatically.