"""Custom database models & model fields."""
from django.db.models import CharField, URLField
from .validators import (
DiscordNameValidator, DiscordServerValidator,
RedditNameValidator, TwitterNameValidator
)
[docs]class DiscordNameField(CharField):
"""A :class:`~django.db.models.CharField` for Discord usernames."""
default_validators = (DiscordNameValidator(),)
def __init__(self, *args, **kwargs):
kwargs['max_length'] = 37
super().__init__(*args, **kwargs)
[docs]class RedditField(CharField):
"""A :class:`~django.db.models.CharField` for Reddit names."""
default_validators = (RedditNameValidator(),)
def __init__(self, *args, **kwargs):
kwargs.setdefault('max_length', 21)
super().__init__(*args, **kwargs)
[docs]class DiscordURLField(URLField):
"""A :class:`~django.db.models.CharField` for Discord server URLs."""
default_validators = (DiscordServerValidator(),)
__all__ = ['TwitterField', 'DiscordNameField', 'DiscordURLField', 'RedditField']