Ответ 1
Добавьте атрибут blank=True
. При желании вы также можете создать поле NULLable с помощью null=True
.
У меня есть следующая модель в джанго.
class Link(models.Model):
name = models.CharField(max_length=100)
url = models.CharField(max_length=100)
tag = models.CharField(max_length=100)
def __unicode__(self):
return self.name
Мне нужно, чтобы поле url было необязательным. Как это сделать?
Добавьте атрибут blank=True
. При желании вы также можете создать поле NULLable с помощью null=True
.
Настройка null=True
для CharField
не рекомендуется, как вы можете видеть из django docs:
Избегайте использовать значение null для строковых полей, таких как CharField и TextField. Если в строковом поле есть null = True, это означает, что у него есть два возможных значения для "no data": NULL и пустая строка. В большинстве случаев его избыточность имеет два возможных значения для "нет данных"; соглашение Django должно использовать пустую строку, а не NULL. Единственное исключение - когда CharField имеет как уникальные = True, так и blank = True. В этой ситуации null = True требуется, чтобы избежать уникальных нарушений ограничений при сохранении нескольких объектов с пустыми значениями.
Поэтому я бы рекомендовал эту конфигурацию:
name = models.CharField(max_length=100, blank=True, default='')