Pinax代码分析2

Pinax代码分析2

上一次大概分析了account package的代码。除了account之外,Pinax内置的apps还有:analyticsauthsubbasic_profilesbbauthblogmiscprofilesprojectssignup_codesstaticfilestribeswaitinglist

analytics

analytics app 用来在项目中使用google统计。定义了一个模板标签来插入 google 统计的代码,从源代码看来需要在settings里设置URCHIN_ID。没有viewsmodels

authsub

用于获得Google Contacts的访问权限。
url
authsub/login/

basic_profiles

一个基本的档案app,用户的姓名、关于、地点、和网站,和account app类似。我安装的项目没有激活这个app

bbauth

貌似连接yahoo的认证。应该是和authsub一样的。直接使用的 ybrowserauth 模块。
url
bbauth/
直接运行不成功,需要settings里设置BBAUTH_APP_ID和BBAUTH_SHARED_SECRET


blog

博客
url
blog/
有一个templates子目录,notification子目录是为了通知模块建立的模板。此外的模板都是用于定义templatetag准备的模板。

例如templatetags/blog.py定义了一个名为 render_content inclusion_tag

@register.inclusion_tag('wiki/article_content.html')
def render_content(article, content_attr='content', markup_attr='markup'):
    return {
        'content': getattr(article, content_attr),
        'markup': getattr(article, markup_attr)
    }


其中inclusion_tag装饰器接受一个模板作为参数。函数 render_content 返回的字典将被用于 wiki/article_content.html 文件。这里的blog app居然用了wiki app的模板,而且在blog的子目录里还有一份一样的,但是没有使用的模板拷贝。感觉代码比较混乱。
参考:http://docs.djangoproject.com/en/dev/howto/custom-template-tags/#inclusion-tags

feeds.py
用于生成blogfeeds,它使用的是 http://code.google.com/p/django-atompub/ 项目的 atom.py 文件,重命名为了atomformatfeeds生成之后要在项目的urls中定义访问feeds的地址:

from blog.feeds import BlogFeedAll, BlogFeedUser
blogs_feed_dict = {"feed_dict": {
    'all': BlogFeedAll,
    'only': BlogFeedUser,
}}


urlpatterns = patterns('',
    ……
    (r'^feeds/posts/(.*)/$', 'django.contrib.syndication.views.feed', blogs_feed_dict),
    ……
)


management.py
用于创建 notification 的类型。

    def create_notice_types(app, created_models, verbosity, **kwargs):
        notification.create_notice_type("blog_friend_post", _("Friend Posted to Blog"), _("a friend of yours posted to their blog"), default=2)
        notification.create_notice_type("blog_post_comment", _("New Comment on Blog Post"), _("a comment was made on one of your blog posts"), default=2)


第一个参数是Label、第二个参数是显示的标题,地三个参数是描述,最后一个参数在文档里没有说明,应该是控制在默认情况下是否发送邮件。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章