PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Validasi Django IntegerRangeField gagal

MinValueValidator dan MaxValueValidator adalah untuk bilangan bulat, jadi mereka adalah validator yang salah untuk digunakan di sini. Alih-alih gunakan validator khusus untuk rentang:RangeMinValueValidator dan RangeMaxValueValidator .

Kedua validator tersebut hidup dalam modul django.contrib.postgres.validators .

Berikut ini tautannya ke kode sumber validator.

Juga, sebuah IntegerRangeField direpresentasikan dalam Python sebagai psycopg2.extras.NumericRange objek, jadi coba gunakan itu alih-alih string saat Anda menentukan default parameter dalam model.

Catatan:NumericRange objek secara default termasuk batas bawah dan tidak termasuk batas atas, jadi NumericRange(0, 100) akan menyertakan 0 dan tidak menyertakan 100. Anda mungkin menginginkan NumericRange(1, 101). Anda juga dapat menentukan bounds parameter di NumericRange . Anda objek untuk mengubah default untuk penyertaan/pengecualian, sebagai pengganti mengubah nilai angka. Lihat dokumentasi objek NumericRange .

Contoh:

# models.py file
from django.contrib.postgres.validators import RangeMinValueValidator, RangeMaxValueValidator
from psycopg2.extras import NumericRange

class SomeModel(models.Model):
    age_range = IntegerRangeField(
        default=NumericRange(1, 101),
        blank=True,
        validators=[
            RangeMinValueValidator(1), 
            RangeMaxValueValidator(100)
        ]
    )



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menghubungkan ke PostgreSQL di IRI Workbench

  2. Mengisi kolom Many2many (odoo 8)

  3. Kesalahan ketidakcocokan data Laravel saat menggunakan \PDO::ATTR_EMULATE_PREPARES => true

  4. Bagaimana cara menginstal hanya alat klien untuk PostgreSQL di Windows?

  5. Relasi dbo.MyTable tidak ditemukan saat skema dan tabel ada