2013-05-02 6 views
14

У меня есть следующая модель в джанго.дополнительные поля в моделях 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, которое является дополнительным. Как мне это сделать?

ответ

30

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

4

Установка null=True для CharField не рекомендуются, так как вы можете видеть из Джанго документов:

Избегайте использование нуля на струнных основе таких областей, как CharField и TextField. Если в строковом поле есть null = True, это означает, что у него есть два возможных значения для «no data»: NULL и пустая строка. В большинстве случаев избыточно иметь два возможных значения для «нет данных», соглашение Django - использовать пустую строку, а не NULL. Единственное исключение - когда CharField имеет как уникальные = True, так и blank = True. В этой ситуации null = True требуется, чтобы избежать уникальных нарушений ограничений при сохранении нескольких объектов с пустыми значениями.

Так что я бы рекомендовал эту конфигурацию:

name = models.CharField(max_length=100, blank=True, default='')