2013-05-02 22 views
14

Mam następujący model w django.opcjonalne pola w modelach 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 

Potrzebuję pola adresu URL do opcjonalnego. Jak mam to zrobic?

Odpowiedz

4

Ustawianie null=True dla CharField nie jest zalecane, jak widać z docs django:

Unikaj używania zerowy na polach ciąg oparte takich jak Charfield i TextField. Jeśli pole oparte na łańcuchu ma wartość null = True, oznacza to, że ma dwie możliwe wartości "brak danych": NULL i pusty ciąg. W większości przypadków zbędne jest posiadanie dwóch możliwych wartości dla "brak danych"; konwencja Django ma używać pustego ciągu, a nie NULL. Jedynym wyjątkiem jest sytuacja, w której pole CharField ma zarówno unikalny = True, jak i puste = True set. W tej sytuacji wymagana jest wartość null = True, aby uniknąć unikalnych naruszeń ograniczeń podczas zapisywania wielu obiektów z pustymi wartościami.

Więc polecam tę konfigurację:

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

Powiązane problemy