我将尽可能简短。将属性添加到Django中的自定义字段
我希望能够通过执行类似下面的自定义字段要做到这一点
{{ video.youtube_url.video_id }}
:
class YouTubeURLField(URLField):
description = _("YouTubeURL")
def _video_id(self):
return re.search('(?<=\?v\=)[\w-]+', self.value)
video_id = property(_video_id)
def __init__(self, verbose_name=None, name=None, verify_exists=True, **kwargs):
super(YouTubeURLField, self).__init__(**kwargs)
kwargs['max_length'] = kwargs.get('max_length', 200)
CharField.__init__(self, verbose_name, name, **kwargs)
self.validators.append(YouTubeURLValidator(verify_exists=verify_exists))
此:
def _video_id(self):
return re.search('(?<=\?v\=)[\w-]+', self.value)
video_id = property(_video_id)
不成功地增加了“VIDEO_ID “属性到我的自定义YouTubeURLField。
其他一切完美无瑕。
我知道在YouTube自定义字段方面可能有更好的设计考虑,但我宁愿理解,首先,为什么这不起作用。