Значение по умолчанию для поля в модели Django
Предположим, у меня есть модели:
class SomeModel(models.Model):
id = models.AutoField(primary_key=True)
a = models.CharField(max_length=10)
b = models.CharField(max_length=7)
В настоящее время я использую администратора по умолчанию для создания/редактирования объектов этого типа.
Как удалить поле b
от администратора, чтобы каждый объект не может будет создан со значением, а скорее получит значение по умолчанию 0000000
?
3 ответов
Set editable
to False
и default
к значению по умолчанию.
http://docs.djangoproject.com/en/dev/ref/models/fields/#editable
b = models.CharField(max_length=7, default='0000000', editable=False)
кроме того,
вы можете установить значение по умолчанию следующим образом:
b = models.CharField(max_length=7,default="foobar")
и затем вы можете скрыть поле с классом администратора вашей модели следующим образом:
class SomeModelAdmin(admin.ModelAdmin):
exclude = ("b")
вы также можете использовать вызываемый объект в поле по умолчанию, например:
b = models.CharField(max_length=7, default=foo)
а затем определите вызываемое:
def foo():
return 'bar'