|
@@ -2,6 +2,7 @@ import json
|
|
|
|
|
|
|
|
from django import forms
|
|
from django import forms
|
|
|
from django.conf import settings
|
|
from django.conf import settings
|
|
|
|
|
+from django.db.models import BigIntegerField as BigIntegerModelField
|
|
|
from django.db.models import Count
|
|
from django.db.models import Count
|
|
|
from django.forms.fields import InvalidJSONInput
|
|
from django.forms.fields import InvalidJSONInput
|
|
|
from django.forms.fields import JSONField as _JSONField
|
|
from django.forms.fields import JSONField as _JSONField
|
|
@@ -13,17 +14,39 @@ from utilities.forms import widgets
|
|
|
from utilities.validators import EnhancedURLValidator
|
|
from utilities.validators import EnhancedURLValidator
|
|
|
|
|
|
|
|
__all__ = (
|
|
__all__ = (
|
|
|
|
|
+ 'BigIntegerField',
|
|
|
'ColorField',
|
|
'ColorField',
|
|
|
'CommentField',
|
|
'CommentField',
|
|
|
'JSONField',
|
|
'JSONField',
|
|
|
'LaxURLField',
|
|
'LaxURLField',
|
|
|
'MACAddressField',
|
|
'MACAddressField',
|
|
|
|
|
+ 'PositiveBigIntegerField',
|
|
|
'QueryField',
|
|
'QueryField',
|
|
|
'SlugField',
|
|
'SlugField',
|
|
|
'TagFilterField',
|
|
'TagFilterField',
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+class BigIntegerField(forms.IntegerField):
|
|
|
|
|
+ """
|
|
|
|
|
+ An IntegerField constrained to the range of a signed 64-bit integer.
|
|
|
|
|
+ """
|
|
|
|
|
+ def __init__(self, *args, **kwargs):
|
|
|
|
|
+ kwargs.setdefault('min_value', -BigIntegerModelField.MAX_BIGINT - 1)
|
|
|
|
|
+ kwargs.setdefault('max_value', BigIntegerModelField.MAX_BIGINT)
|
|
|
|
|
+ super().__init__(*args, **kwargs)
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+class PositiveBigIntegerField(BigIntegerField):
|
|
|
|
|
+ """
|
|
|
|
|
+ An IntegerField constrained to the range supported by Django's
|
|
|
|
|
+ PositiveBigIntegerField model field.
|
|
|
|
|
+ """
|
|
|
|
|
+ def __init__(self, *args, **kwargs):
|
|
|
|
|
+ kwargs.setdefault('min_value', 0)
|
|
|
|
|
+ super().__init__(*args, **kwargs)
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
class QueryField(forms.CharField):
|
|
class QueryField(forms.CharField):
|
|
|
"""
|
|
"""
|
|
|
A CharField subclass used for global search/query fields in filter forms.
|
|
A CharField subclass used for global search/query fields in filter forms.
|