Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara menyimpan nilai kosong sebagai Integerfield

Sebuah string bukan bilangan bulat; dan string kosong bukan None atau NULL . Yang perlu Anda lakukan adalah menangkap contoh-contoh di mana bidang kosong dan kemudian melemparkannya ke None .

foo = "something" # "something" is coming from your CSV file

try:
   val = int(foo)
except ValueError:
   # foo is something that cannot be converted to
   # a number. It could be an empty string, or a
   # string like 'hello'
   # provide a default value
   val = None

# Now use val to insert into the database
f = MyModel()
f.age = val
f.save()

blank hanya untuk validasi front end; itu tidak berdampak pada sisi database:

null di sisi lain, ada hubungannya dengan database:

Sebuah IntegerField membutuhkan nilai yang dapat diubah menjadi bilangan bulat, jadi ketika Anda memasukkan string kosong , itu tidak bisa melemparkannya dan memunculkan pengecualian. Sebaliknya, jika Anda memasukkan None , dan Anda memiliki age = models.IntegerField(null=True) , ia tahu untuk menyimpannya dengan benar.

Untuk meringkas:

  • age = models.IntegerField()

    Bidang wajib diisi dan membutuhkan nilai bilangan bulat yang valid. Itu tidak akan menerima None dan tidak akan memiliki nilai nol dalam database. Nilai yang valid adalah -2147483648 hingga 2147483647

  • age = models.IntegerField(null=True)

    Bidang wajib diisi (validasi formulir). Jika bidang memiliki None sebagai nilai, itu akan diterjemahkan ke NULL dalam basis data.

  • age = models.IntegerField(blank=True, null=True)

    Bidang tidak wajib diisi (validasi formulir). Jika bidang dilewatkan dalam None , itu akan diterjemahkan ke NULL

  • age = models.IntegerField(blank=True)

    Bidang tidak diperlukan (validasi formulir), tetapi nilai integer yang valid harus diteruskan karena database tidak menerima nol. Biasanya di sini Anda akan memberikan nilai default dengan default=0 atau lakukan validasi sebelum mengirimkan nilai ke orm.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kueri LEFT OUTER JOIN tidak mengembalikan baris yang diharapkan

  2. PHP MySQL PDO:cara mempertahankan angka nol di depan kolom zerofill int

  3. Efisiensi cache kueri

  4. Data Kolom Tabel Pivot MySQL sebagai Baris

  5. Cara membuat cadangan prosedur tersimpan di MySQL