Python论坛  - 讨论区

标题:[python-chinese] 首次进入django admin是调用那个函数?

2006年12月26日 星期二 17:20

Brightman fenyon在126.com
星期二 十二月 26 17:20:08 HKT 2006

Ò»²½Ò»²½µØÎÊ°É
1.http://127.0.0.1/admin
µÚÒ»´Î½øÈëÕâ¸öÒ³Ã棨Óû§Ã»ÓеǼ£© Êǵ÷ÓÃÄǸöº¯Êý£¿

ÊÇdjango.contrib.admin.views.main.indexô£¿
Èç¹ûÊÇ£¬ÎÒÔڸú¯ÊýÖÐÌí¼ÓÁËprint´úÂ룬·¢ÏÖ²¢Ã»Óе÷ÓÃËü¡£
Èç¹û²»ÊÇ£¬ÄÇʱµ÷ÓÃÄǸöº¯Êý£¿




Brightman
2006-12-26
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20061226/458591eb/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年12月26日 星期二 17:36

limodou limodou在gmail.com
星期二 十二月 26 17:36:27 HKT 2006

On 12/26/06, Brightman <fenyon在126.com> wrote:
>
>
> 一步一步地问吧
> 1.http://127.0.0.1/admin
> 第一次进入这个页面(用户没有登录) 是调用那个函数?
>
> 是django.contrib.admin.views.main.index么?
> 如果是,我在该函数中添加了print代码,发现并没有调用它。
> 如果不是,那时调用那个函数?
>
>

def index(request):
    return render_to_response('admin/index.html', {'title': _('Site
administration')}, context_instance=template.RequestContext(request))
index = staff_member_required(never_cache(index))

这是代码,可以看到,它执行了一个decorator的处理,先经过staff_member_required的处理了。这个函数会弹出注册form的。

-- 
I like python!
UliPad <>: http://wiki.woodpecker.org.cn/moin/UliPad
My Blog: http://www.donews.net/limodou

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年12月26日 星期二 17:56

yi huang yi.codeplayer在gmail.com
星期二 十二月 26 17:56:39 HKT 2006

On 12/26/06, limodou <limodou at gmail.com> wrote:
>
> On 12/26/06, Brightman <fenyon at 126.com> wrote:
> >
> >
> > 一步一步地问吧
> > 1.http://127.0.0.1/admin
> > 第一次进入这个页面(用户没有登录) 是调用那个函数?
> >
> > 是django.contrib.admin.views.main.index么?
> > 如果是,我在该函数中添加了print代码,发现并没有调用它。
> > 如果不是,那时调用那个函数?
> >
> >
>
> def index(request):
>     return render_to_response('admin/index.html', {'title': _('Site
> administration')}, context_instance=template.RequestContext(request))
> index = staff_member_required(never_cache(index))
>
> 这是代码,可以看到,它执行了一个decorator的处理,先经过staff_member_required的处理了。这个函数会弹出注册form的。
>
> --
> I like python!
> UliPad <>: http://wiki.woodpecker.org.cn/moin/UliPad
> My Blog: http://www.donews.net/limodou
> _______________________________________________
> python-chinese
> Post: send python-chinese at lists.python.cn
> Subscribe: send subscribe to python-chinese-request at lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request at lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese


接着 limodou 的说:
也就是说调用的是 admin/views/decorators.py line 48 的 staff_member_required 里面的
_checklogin
;-)

-- 
http://codeplayer.blogspot.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://python.cn/pipermail/python-chinese/attachments/20061226/cf9a6d5d/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年12月26日 星期二 23:01

brightman fenyon在126.com
星期二 十二月 26 23:01:26 HKT 2006

一个HTML附件被移除...
URL: http://python.cn/pipermail/python-chinese/attachments/20061226/65ecc1a7/attachment-0001.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年12月27日 星期三 08:52

limodou limodou在gmail.com
星期三 十二月 27 08:52:26 HKT 2006

On 12/26/06, brightman <fenyon在126.com> wrote:
>
>  非常感谢!由于不知道decorator,所以忽略了index =
> staff_member_required(never_cache(index))
>
>  进入 http://127.0.0.1:8000/admin/auth/user/add/
>  又是django\contrib\admin\urls.py中对应的那个?调用那个函数?
>
当你看到一个ulr时你应该去找 urls.py 文件,在admin的urls.py文件中是这样的:

    ('^([^/]+)/([^/]+)/add/$', 'django.contrib.admin.views.main.add_stage'),

所以你要去看 add_stage 这个函数。

-- 
I like python!
UliPad <>: http://wiki.woodpecker.org.cn/moin/UliPad
My Blog: http://www.donews.net/limodou

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年12月29日 星期五 22:56

brightman fenyon在126.com
星期五 十二月 29 22:56:11 HKT 2006

一个HTML附件被移除...
URL: http://python.cn/pipermail/python-chinese/attachments/20061229/043961ec/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年12月29日 星期五 23:04

limodou limodou在gmail.com
星期五 十二月 29 23:04:17 HKT 2006

On 12/29/06, brightman <fenyon在126.com> wrote:
>
>  limodou 写道:
>  On 12/26/06, brightman <fenyon在126.com> wrote:
>
>
>  非常感谢!由于不知道decorator,所以忽略了index =
> staff_member_required(never_cache(index))
>
>  进入 http://127.0.0.1:8000/admin/auth/user/add/
>  又是django\contrib\admin\urls.py中对应的那个?调用那个函数?
>
>
>  当你看到一个ulr时你应该去找 urls.py 文件,在admin的urls.py文件中是这样的:
>
>  ('^([^/]+)/([^/]+)/add/$',
> 'django.contrib.admin.views.main.add_stage'),
>
> 所以你要去看 add_stage 这个函数。
>
>
>  def add_stage(request, app_label, model_name, show_delete=False,
> form_url='', post_url=None, post_url_continue='../%s/',
> object_id_override=None):
>  request是HttpRequest对象,包含了一些request信息。
>  app_label model_name show_delete等等是从何处获取值?
>  谢谢!
>

在view方法中的参数有两个来源,一个是从url中分析出来的,一个是通过urls.py来传入的。
因此 app_label, model_name就是对应:

('^([^/]+)/([^/]+)

如果没有定义正则式的分组名,则分解出来的参数是按顺序传入的。
show_delete既没有在url中定义,又没有通过urls来传递,但因为它有缺省,所以使用缺省值了。

-- 
I like python!
UliPad <>: http://wiki.woodpecker.org.cn/moin/UliPad
My Blog: http://www.donews.net/limodou

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号