2024-12-10 22:05:36 +00:00
|
|
|
"""
|
|
|
|
Commonly used Django model fields.
|
|
|
|
"""
|
|
|
|
|
2021-06-29 22:48:50 +00:00
|
|
|
from django.db import models
|
|
|
|
from django.forms import TextInput
|
|
|
|
|
|
|
|
from .mixins import EasilyMigratable
|
|
|
|
|
|
|
|
|
|
|
|
class CharField(EasilyMigratable, models.TextField):
|
2024-12-10 22:05:36 +00:00
|
|
|
"""
|
|
|
|
Variable width CharField.
|
|
|
|
"""
|
2021-06-29 22:48:50 +00:00
|
|
|
|
|
|
|
def formfield(self, **kwargs):
|
2024-12-10 22:05:36 +00:00
|
|
|
"""
|
|
|
|
Use TextInput instead of the default TextArea.
|
|
|
|
"""
|
|
|
|
|
2021-06-29 22:48:50 +00:00
|
|
|
if not self.choices:
|
|
|
|
kwargs.update({"widget": TextInput})
|
|
|
|
return super().formfield(**kwargs)
|
|
|
|
|
|
|
|
|
|
|
|
class TextField(EasilyMigratable, models.TextField):
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
class SlugField(EasilyMigratable, models.SlugField):
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
class EmailField(EasilyMigratable, models.EmailField):
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
class BooleanField(EasilyMigratable, models.BooleanField):
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
class DateField(EasilyMigratable, models.DateField):
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
class DateTimeField(EasilyMigratable, models.DateTimeField):
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
class PositiveIntegerField(EasilyMigratable, models.PositiveIntegerField):
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
class DecimalField(EasilyMigratable, models.DecimalField):
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
class JSONField(EasilyMigratable, models.JSONField):
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
class FileField(EasilyMigratable, models.FileField):
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
class ImageField(EasilyMigratable, models.ImageField):
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
class ForeignKey(EasilyMigratable, models.ForeignKey):
|
2024-12-10 22:05:36 +00:00
|
|
|
"""
|
|
|
|
A foreign key that does not create a reverse relation by default.
|
|
|
|
"""
|
|
|
|
|
2021-06-29 22:48:50 +00:00
|
|
|
def __init__(self, *args, related_name="+", **kwargs):
|
|
|
|
super().__init__(
|
|
|
|
*args,
|
|
|
|
related_name=related_name,
|
|
|
|
**kwargs,
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
class ManyToManyField(EasilyMigratable, models.ManyToManyField):
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
class OneToOneField(EasilyMigratable, models.OneToOneField):
|
|
|
|
pass
|