Mam następujący model w Django 1.5:Django model blank = False nie działa?
class Person(models.Model):
name = models.CharField(max_length=50)
Należy zauważyć, że zgodnie z https://docs.djangoproject.com/en/dev/ref/models/fields/ name.blank jest domyślnie Fałsz co oznacza, że musi być określona.
Jednak mogę z powodzeniem utworzyć obiekt Person następująco:
Person.objects.create()
Wskazówka nazwa nie jest określona. Co się dzieje?
Ok, odpowiedź jest z docs:
pamiętać, że jest inna niż null. null jest wyłącznie związany z bazą danych, podczas gdy puste jest związane z walidacją. Jeśli pole ma puste = True, zatwierdzenie formularza pozwoli wprowadzić pustą wartość. Jeśli pole ma puste = Fałsz, pole będzie wymagane.
Kolejny haczyk:
Zauważ, że Walidatory nie zostanie uruchomiony automatycznie po zapisaniu modelu, ale jeśli używasz ModelForm, będzie uruchamiać weryfikatorów na wszelkich polach, które są wliczone w cenę Formularz.
Twoim obowiązkiem jest wywoływanie czystych metod przed zapisaniem, jeśli nie korzystasz z formularza.
Po pierwsze, co jest z tym ' name = ... 'NIE rób tego. –
co masz na myśli? – Lucas
Wierzę, że gry odnoszą się do wcięcia. Nie jest zalecana praktyka kodowania według PEP-8. – bernie