Django

Code

Changeset 6252

Show
Ignore:
Timestamp:
09/14/07 21:37:07 (1 year ago)
Author:
russellm
Message:

Fixed #4415 -- Added formfield method to PositiveIntegerField?, so that those fields get validated correctly. Thanks, Oggie Rob.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/django/db/models/fields/__init__.py

    r6205 r6252  
    913913    def get_manipulator_field_objs(self): 
    914914        return [oldforms.PositiveIntegerField] 
     915     
     916    def formfield(self, **kwargs): 
     917        defaults = {'min_value': 0} 
     918        defaults.update(kwargs) 
     919        return super(PositiveIntegerField, self).formfield(**defaults)  
    915920 
    916921class PositiveSmallIntegerField(IntegerField): 
    917922    def get_manipulator_field_objs(self): 
    918923        return [oldforms.PositiveSmallIntegerField] 
     924 
     925    def formfield(self, **kwargs): 
     926        defaults = {'min_value': 0} 
     927        defaults.update(kwargs) 
     928        return super(PositiveSmallIntegerField, self).formfield(**defaults)  
    919929 
    920930class SlugField(CharField): 
  • django/trunk/tests/regressiontests/forms/models.py

    r5876 r6252  
     1from django.db import models 
     2 
     3class BoundaryModel(models.Model):  
     4    positive_integer = models.PositiveIntegerField(null=True, blank=True) 
     5     
     6__test__ = {'API_TESTS': """ 
     7>>> from django.newforms import form_for_model 
     8 
     9# Boundary conditions on a PostitiveIntegerField ######################### 
     10>>> BoundaryForm = form_for_model(BoundaryModel)  
     11>>> f = BoundaryForm({'positive_integer':100})  
     12>>> f.is_valid()  
     13True 
     14>>> f = BoundaryForm({'positive_integer':0})  
     15>>> f.is_valid()  
     16True 
     17>>> f = BoundaryForm({'positive_integer':-100})  
     18>>> f.is_valid()  
     19False 
     20 
     21"""}