Jak przechowywać pustą wartość jako pole całkowite
Widziałem wszystkie podobne strumienie, przeczytałem dokumenty i próbowałem wielu kombinacji, aby zapisać pustą wartość jako
IntegerFieldw DB i za każdym razem kończyło się niepowodzeniem.
Używam MySQL.
Mój
models.pydefiniuje pole
age = models.IntegerField (). Wypełniam bazę danych z pliku csv, a niektóre komórki nie robią żadnej różnicy. Dokumentacja Django mówi:
Field.nullIf True, Django will store empty values as NULL in the database. Default is False.
Note that empty string values will always get stored as empty strings, not as NULL.
Ponieważ pracuję z
IntegerField, chcę, aby pusty ciąg (pusta komórka z csv) był przechowywany jako
NULLw bazie danych. Więc (myślę) powinienem dodać
null = Truedo pola
age. W rzeczywistości próbowałem więcej niż to:
age=models.IntegerField()
age=models.IntegerField(null=True)
age=models.IntegerField(null=True, blank=True)
age=models.IntegerField(null=True, blank=True, default=None)
i za każdym razem, gdy wstawiam pustą linię do bazy danych, którą otrzymuję
ValueError: invalid literal for int() with base 10: ''
Zgadnij, co jeszcze mogę zrobić?
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
3 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
https://docs.djangoproject.com ... tions
przeznaczone wyłącznie do sprawdzania nowej wiedzy; nie ma wpływu na stronę bazy danych:
Zauważ, że to różni się od . jest czystym
jest powiązany z bazą danych, natomiast jest związany z walidacją. Jeśli pole
ma , sprawdzanie poprawności formularza pozwoli na wprowadzenie pustej wartości.
Jeśli pole zawiera , to to pole będzie wymagane.
https://docs.djangoproject.com ... tions
z drugiej strony dotyczy bazy danych:
Jeśli True, to Django będzie przechowywać puste wartości jako NULL w bazie danych. Wartość domyślna to False.
wymaga wartości, którą można przekonwertować na liczbę całkowitą, więc po przekazaniu
pusta linia
, nie może go rzucić i zgłasza wyjątek. Zamiast tego, jeśli przekażesz i masz , wie, że ma to poprawnie zapisać.
Zreasumowanie:
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od: