2010-02-11 22 views
24

Trường có thể có kiểu mô hình.PositiveIntegerField có chứa giá trị 0 không? Tôi đang làm một cái gì đó như:0 giá trị trong Django PositiveIntegerField?

points = models.PositiveIntegerField(default=0) 

Cảm ơn,

Tôi biết tôi nên cố gắng ir bản thân mình, nhưng tôi không có một môi trường Django đây.

Trả lời

5

Có.

model field reference nói như vậy. Để hoàn chỉnh, cũng được trích dẫn ở đây:

PositiveIntegerField

class PositiveIntegerField([**options]) 

Giống như một IntegerField, nhưng phải là tích cực hay không (0). Giá trị 0 được chấp nhận vì lý do tương thích ngược.

1

Đối với những người muốn loại trừ 0, thật dễ dàng để viết validator cho điều đó.

def validate_nonzero(value): 
    if value == 0: 
     raise ValidationError(
      _('Quantity %(value)s is not allowed'), 
      params={'value': value}, 
     ) 

và sau đó sử dụng nó như thế

fill_qty = models.PositiveIntegerField(
    default=0, 
    validators=[MaxValueValidator(1000000), validate_nonzero] 
) 
+0

FYI: Điều này chỉ hoạt động thông qua lưu ModelForm. – Babu

+0

điều gì khiến bạn nói vậy? – shadi

+1

Có thể là trải nghiệm cá nhân của tôi. Và với điều này nói trên các tài liệu, https://docs.djangoproject.com/en/1.11/ref/validators/#how-validators-are-run Tôi có thể đi đến bất kỳ phần nào của thế giới và hét to lên. :) – Babu

0

Vâng theo định nghĩa của một số nguyên dương, nó không nên chấp nhận một giá trị bằng không, nhưng django thực sự coi nó theo nghĩa không có âm số không bao gồm số không. Vì vậy, Có, nó có thể chấp nhận giá trị bằng không

Các vấn đề liên quan