我將盡可能簡短。將屬性添加到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自定義字段方面可能有更好的設計考慮,但我寧願理解,首先,爲什麼這不起作用。