django-simplecms/cms/fields.py

75 wiersze
1.4 KiB
Python

from django.db import models
from django.forms import TextInput
from .mixins import EasilyMigratable
class CharField(EasilyMigratable, models.TextField):
"""Variable width CharField."""
def formfield(self, **kwargs):
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):
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