0
class BaseCommentAbstractModel(models.Model):
"""
An abstract base class that any custom comment models probably should
subclass.
"""
# Content-object field
content_type = models.ForeignKey(ContentType,
verbose_name=_('content type'),
related_name="content_type_set_for_%(class)s")
object_pk = models.TextField(_('object ID'))
content_object = generic.GenericForeignKey(ct_field="content_type", fk_field="object_pk")
# Metadata about the comment
site = models.ForeignKey(Site)
class Meta:
abstract = True
def get_content_object_url(self):
"""
Get a URL suitable for redirecting to the content object.
"""
return urlresolvers.reverse(
"comments-url-redirect",
args=(self.content_type_id, self.object_pk)
)
我有两个与此型号代码相关的问题。需要关于Django评论的BaseCommentAbstractModel的一些解释应用程序
models.TextField(_('object ID'))
对象ID可能是这个TextField的详细名称,它在数据库中如何反映?- 为什么Django依赖Meta内部类的字段
abstract
而不是使用abc(AbstractBaseClass)模块?
_()是一个本地化字符串(通常)的功能,所以如果有人用西班牙语查看页面,它会存储为类似于“identifyicacion de objecto” – 2012-04-12 18:01:02
@JoranBeasley是正确的...除了“store”部分。详细名称仅存在于python代码中。它们不以任何方式存储到数据库中。 – John 2012-04-12 18:07:28