Plain is headed towards 1.0! Subscribe for development updates →

 1"""
 2Typed field imports for better IDE and type checker support.
 3
 4This module provides the same field classes as plain.models.fields,
 5but with a companion .pyi stub file that makes type checkers interpret
 6field assignments as their primitive Python types.
 7
 8Usage:
 9    from plain.models import types
10
11    @models.register_model
12    class User(models.Model):
13        email: str = types.EmailField()
14        age: int = types.IntegerField()
15        is_active: bool = types.BooleanField(default=True)
16
17This is optional - you can continue using untyped field definitions.
18"""
19
20# Re-export scalar field types
21from plain.models.fields import (
22    BigIntegerField,
23    BinaryField,
24    BooleanField,
25    CharField,
26    DateField,
27    DateTimeField,
28    DecimalField,
29    DurationField,
30    EmailField,
31    FloatField,
32    GenericIPAddressField,
33    IntegerField,
34    PositiveBigIntegerField,
35    PositiveIntegerField,
36    PositiveSmallIntegerField,
37    PrimaryKeyField,
38    SmallIntegerField,
39    TextField,
40    TimeField,
41    URLField,
42    UUIDField,
43)
44from plain.models.fields.json import JSONField
45from plain.models.fields.related import ForeignKey, ManyToManyField
46
47__all__ = [
48    "BigIntegerField",
49    "BinaryField",
50    "BooleanField",
51    "CharField",
52    "DateField",
53    "DateTimeField",
54    "DecimalField",
55    "DurationField",
56    "EmailField",
57    "FloatField",
58    "ForeignKey",
59    "GenericIPAddressField",
60    "IntegerField",
61    "JSONField",
62    "ManyToManyField",
63    "PositiveBigIntegerField",
64    "PositiveIntegerField",
65    "PositiveSmallIntegerField",
66    "PrimaryKeyField",
67    "SmallIntegerField",
68    "TextField",
69    "TimeField",
70    "URLField",
71    "UUIDField",
72]