django-embed-video/embed_video/fields.py
2013-06-01 14:05:25 +02:00

26 lines
715 B
Python

from django.db import models
from django import forms
from django.utils.translation import ugettext_lazy as _
from .base import detect_backend
__all__ = ('EmbedVideoField', 'EmbedVideoFormField')
class EmbedVideoField(models.URLField):
def formfield(self, **kwargs):
defaults = {'form_class': EmbedVideoFormField}
defaults.update(kwargs)
return super(EmbedVideoField, self).formfield(**defaults)
class EmbedVideoFormField(forms.URLField):
def validate(self, url):
super(EmbedVideoFormField, self).validate(url)
try:
detect_backend(url)
except:
raise forms.ValidationError(_(u'URL could not be recognized.'))
return url