Дополнительные поля в моделях django - программирование
Подтвердить что ты не робот

Дополнительные поля в моделях django

У меня есть следующая модель в джанго.

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 было необязательным. Как это сделать?

4b9b3361

Ответ 1

Добавьте атрибут blank=True. При желании вы также можете создать поле NULLable с помощью null=True.

Ответ 2

Настройка 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='')