Значение по умолчанию для поля в модели 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
?
Ответы
Ответ 1
Установите editable
на False
и default
на значение по умолчанию.
http://docs.djangoproject.com/en/dev/ref/models/fields/#editable
b = models.CharField(max_length=7, default='0000000', editable=False)
Кроме того, поле id
не требуется. Django добавит его автоматически.
Ответ 2
Вы можете установить значение по умолчанию следующим образом:
b = models.CharField(max_length=7,default="foobar")
а затем вы можете скрыть поле с классом администратора модели следующим образом:
class SomeModelAdmin(admin.ModelAdmin):
exclude = ("b")
Ответ 3
Вы также можете использовать вызываемый в поле по умолчанию, например:
b = models.CharField(max_length=7, default=foo)
И затем определите вызываемый:
def foo():
return 'bar'