??xml version="1.0" encoding="utf-8" standalone="yes"?>久草精品视频,欧美高清视频看片在线观看,蜜桃视频成人m3u8http://www.aygfsteel.com/Man/category/53474.htmlzh-cnThu, 27 Jun 2013 17:17:03 GMTThu, 27 Jun 2013 17:17:03 GMT60Django 使用LDAP验证dhttp://www.aygfsteel.com/Man/archive/2013/06/27/401013.html此号已被?/dc:creator>此号已被?/author>Thu, 27 Jun 2013 08:30:00 GMThttp://www.aygfsteel.com/Man/archive/2013/06/27/401013.htmlhttp://www.aygfsteel.com/Man/comments/401013.htmlhttp://www.aygfsteel.com/Man/archive/2013/06/27/401013.html#Feedback0http://www.aygfsteel.com/Man/comments/commentRss/401013.htmlhttp://www.aygfsteel.com/Man/services/trackbacks/401013.html
    最好的方式是直接使用员工的计机帐号来登录,那样׃用ؓ(f)又要住个新帐号名密码而苦g(jin)?br />
    恰好公司有LDAP服务器,q且存有员工账号信息。这样就可以通过Django的LDAP插gQ来完成员工帐号的登录验证功能?br />
    首先需要安装以下模块:(x)
    python-ldap 2.4.12    https://pypi.python.org/pypi/python-ldap/2.4.12

    安装完成后,django目中settings.py的ldap配置如下:
 1 #LDAP configuration
 2 import ldap
 3 from django_auth_ldap.config import LDAPSearch
 4 AUTHENTICATION_BACKENDS = (
 5     'django_auth_ldap.backend.LDAPBackend',
 6     'django.contrib.auth.backends.ModelBackend',  
 7 )
 8 
 9 AUTH_LDAP_SERVER_URI = 'ldap://SERVER_IP'
10 AUTH_LDAP_BIND_DN = 'CN=ACCOUNT_NAME,OU=Accounts,DC=ldap,DC=example,DC=com'
11 AUTH_LDAP_BIND_PASSWORD = "PASSWORD"
12 AUTH_LDAP_USER_SEARCH = LDAPSearch("OU=Accounts,DC=ldap,DC=example,DC=com", ldap.SCOPE_SUBTREE, "(&(objectClass=person)(sAMAccountName=%(user)s))")
13 
14 AUTH_LDAP_USER_ATTR_MAP = {
15      "first_name""givenName",
16      "last_name""sn",
17      "email""mail"
18 }

    工作程Q?br />
    dӞ在默认的django数据库帐号验证之前,?x)先到LDAP服务器上去验证?br />     输入的登录帐号到LDAP服务器验证之前,?x)先用配|文件中的绑定DN、密码去验证Q验证通过才能l箋用输入的帐号密码去LDAP服务器验证?br />     若LDAP验证通过Q会(x)(g)查django数据库中是否已存在该帐号Q若不存在,则会(x)Ҏ(gu)LDAP验证通过后获取的用户信息Q来创徏django数据库的用户账号。帐号名和输入的一P密码则会(x)设ؓ(f)一个无效的密码Q看?jin)下源码?!",无法合法哈希~码Q,因ؓ(f)该帐号密码验证是从LDAP上进行,所以django中的密码不会(x)被用到。除?jin)默认的用户姓名、邮件等信息Q若要把Group信息也同步过来的话需要进行相应的配置?br />    若LDAP验证p|Q则?x)用Django数据库的默认d验证?br />
    PS: LDAP快速入?nbsp;  http://www.cnblogs.com/obpm/archive/2010/08/28/1811065.html


]]>
Django 国际?/title><link>http://www.aygfsteel.com/Man/archive/2013/05/10/399116.html</link><dc:creator>此号已被?/dc:creator><author>此号已被?/author><pubDate>Fri, 10 May 2013 08:24:00 GMT</pubDate><guid>http://www.aygfsteel.com/Man/archive/2013/05/10/399116.html</guid><wfw:comment>http://www.aygfsteel.com/Man/comments/399116.html</wfw:comment><comments>http://www.aygfsteel.com/Man/archive/2013/05/10/399116.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/Man/comments/commentRss/399116.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/Man/services/trackbacks/399116.html</trackback:ping><description><![CDATA[Django 1.5<br />Python 2.7.3<br /><br />    国际化支持,|上一搜详l的例子很多。本以ؓ(f)是一个简单的caseQ结果折腾了(jin)好几个小时却百撕不得骑姐Q!最l去ȝ官方教程Qȝ扑ֈ解决Ҏ(gu)?br /><br />    单说下如何国际化支持Q以中文国际化ؓ(f)例)(j)Q(详情参阅Qhttp://djangobook.py3k.cn/2.0/chapter19/Q?br /><br /><div>    ?Django ?Python 代码q行国际化主要用?ugettext()Qgettext_noop()Qgettext_lazy() ?ungettext() {函敎ͼ模板中则使用trans、blocktrans标签?br /><br />国际化步骤:(x)<br /><div>    1.在你的App 目录下创?locale 目录Qƈq行“django-admin.py makemessages -l zh_CN”产生 locale/zh_CN/LC_MESSAGES/django.po 文g。它?x)自动搜索目录下所有需要国际化的内容,生成一个清单文Ӟdjango.poQ?然后打开该文Ӟ加上对应的中文翻译即可?br />    2.q行“django-admin.py compilemessages”命o(h)Q生成一个django.mo文gQ这是真正在q行时所调用的?br /><br />按照教程所_(d)djangoq行时会(x)Ҏ(gu)法自动扑ֈ该文Ӟ然而遇到的问题是它没有被找到。显C的依然是默认的英文?br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">Django使用以下法L译Q?br /><br />    首先QDjango在该视图所在的应用E序文g夹中L locale 目录?nbsp;若找到所选语a的翻译,则加载该译?br /><br />    W二步,Django在项目目录中L locale 目录?nbsp;若找到翻译,则加载该译?br /><br />    最后,Django使用 django</span><span style="color: #000000; ">/</span><span style="color: #000000; ">conf</span><span style="color: #000000; ">/</span><span style="color: #000000; ">locale 目录中的基本译?/span></div></div>估计q个问题与我的项目的目录l构有关Qapp没有直接在项目的根目录下Q而是中间多了(jin)一个目录apps。(感兴的可参考一下:(x)<a target="_blank" >django最?jng)_践:(x)目布局</a> Q?br /><div></div>ȝ?jin)下官方文挡Qȝ扑ֈ?jin)解军_法:(x)<br />在项目的settings.py配置文g中,d<strong>LOCALE_PATHS</strong>变量Q把locale目录d到其中(<a target="_blank" >官方链接</a>Q?br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">LOCALE_PATHS </span><span style="color: #000000; ">=</span><span style="color: #000000; "> (<br />    </span><span style="color: #800000; ">'</span><span style="color: #800000; ">/home/www/project/common_files/locale</span><span style="color: #800000; ">'</span><span style="color: #000000; ">,<br />    </span><span style="color: #800000; ">'</span><span style="color: #800000; ">/var/local/translations/locale</span><span style="color: #800000; ">'</span><span style="color: #000000; "><br />)</span></div><br />在django1.5下,国际化默认是支持的,q不需要像各教E所说那样在配置文g中添加相应的中间Ӟ默认已经加上?jin)?j)。如果你发现你的国际化资源文件没有被载入Q那去上面q个变量中添加locale路径吧?/div><img src ="http://www.aygfsteel.com/Man/aggbug/399116.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/Man/" target="_blank">此号已被?/a> 2013-05-10 16:24 <a href="http://www.aygfsteel.com/Man/archive/2013/05/10/399116.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Django官方文档学习(fn)W记QTutorial: Part 3http://www.aygfsteel.com/Man/archive/2013/05/10/397539.html此号已被?/dc:creator>此号已被?/author>Fri, 10 May 2013 07:36:00 GMThttp://www.aygfsteel.com/Man/archive/2013/05/10/397539.htmlhttp://www.aygfsteel.com/Man/comments/397539.htmlhttp://www.aygfsteel.com/Man/archive/2013/05/10/397539.html#Feedback0http://www.aygfsteel.com/Man/comments/commentRss/397539.htmlhttp://www.aygfsteel.com/Man/services/trackbacks/397539.html     view是django应用中网늚一U类型,每个view有一个特定的模板Q服务于一个特定的Ҏ(gu)?br />    
    投票pȝq个应用比较z,主要有以?个viewsQ?br />
  • Poll “index” page – displays the latest few polls.
  • Poll “detail” page – displays a poll question, with no results but with a form to vote.
  • Poll “results” page – displays results for a particular poll.
  • Vote action – handles voting for a particular choice in a particular poll.
    如何从一个url讉K其对应的viewQ与URLconf有关?br />
    1、写W一个view
    修改“polls/views.py”文gQ输出hello world?br />
from django.http import HttpResponse

def index(request):
    
return HttpResponse("Hello, world. poll index.");
    修改poll应用的url文gQ?polls/urls.py"Q:(x)
from django.conf.urls import patterns, url
from polls import views

urlpatterns 
= patterns('',
    url(r
'^$', views.index, name='index'),
)
    修改目的url文gQ?mysite/urls.py"Q:(x)
from django.conf.urls import patterns, include, url

# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()

urlpatterns 
= patterns('',
    
# Examples:
    # url(r'^$', 'mysite.views.home', name='home'),
    # url(r'^mysite/', include('mysite.foo.urls')),

    
# Uncomment the admin/doc line below to enable admin documentation:
    # url(r'^admin/doc/', include('django.contrib.admindocs.urls')),

    
# Uncomment the next line to enable the admin:
    url(r'^polls/', include('polls.urls')),
    url(r
'^admin/', include(admin.site.urls)),
)
    从上qC码可以看出,视图通过HttpResponse对象来显C页面。http讉KӞurl则是先通过目的url文gQ?mysite/urls.py"Q正则表辑ּ匚wqo(h)Q再到具体应用的urls文g匚w视图?/div>    
    url()Ҏ(gu)参数Qregex,view,kwargs,name
    regex      正则表达式匹配url链接Q不含参敎ͼ(j)。例如访?#8220;
http://www.example.com/myapp/?page=3
”Qurl链接部分?#8220;myapp/”;
    view        视图。url讉KӞDjango匚w到对应的url链接Q则?x)调用其对应的viewҎ(gu);
    kwargs    传递给目标view的参?
    name       lurl命名Q以便于识别;

    2、写多个views
    h的urlҎ(gu)正则表达式匹配对应的视图?br />
    修改poll应用的views文gQ?polls/views.py"Q:(x)
    index演示?jin)查询最q?条poll记录Qƈ把poll的question以逗号q接q回到页面?/div>
from django.http import HttpResponse
from polls.models import Poll

def index(request):
    latest_poll_list 
= Poll.objects.order_by('-pub_date')[:5]
    output 
= ''.join([p.question for p in latest_poll_list])
    
return HttpResponse(output)

def detail(request, poll_id):
    
return HttpResponse("You're looking at poll %s." % poll_id)

def results(request, poll_id):
    
return HttpResponse("You're looking at the results of poll %s." % poll_id)

def vote(request, poll_id):
    
return HttpResponse("You're voting on poll %s." % poll_id)

    修改poll应用的url文gQ?polls/urls.py"Q:(x)
from django.conf.urls import patterns, url
from polls import views

urlpatterns 
= patterns('',
    
# ex: /polls/
    url(r'^$', views.index, name='index'),
    
# ex: /polls/5/
    url(r'^(?P<poll_id>\d+)/$', views.detail, name='detail'),
    
# ex: /polls/5/results/
    url(r'^(?P<poll_id>\d+)/results/$', views.results, name='results'),
     
# ex: /polls/5/vote/
    url(r'^(?P<poll_id>\d+)/vote/$', views.vote, name='vote'),
)

    3、用模板来展示面

Z(jin)提高效率Q用模板功能来定义html面布局?/span>

创徏index模板文gQ?polls/templates/polls/index.html"Q:(x)

{% if latest_poll_list %}
    
<ul>
    {% for poll in latest_poll_list %}
        
<li><href="/polls/{{ poll.id }}/">{{ poll.question }}</a></li>
    {% endfor %}
    
</ul>
{% else %}
    
<p>No polls are available.</p>
{% endif %}

html模板中用了(jin)django的标记语a。views中会(x)载入模板渲染Q填充数据到标记Q生成最l的web面q回?br />


修改views的indexҎ(gu)Q?polls/views.py"Q:(x)

from django.http import HttpResponse
from django.template import Context, loader
from polls.models import Poll

def index(request):
    latest_poll_list 
= Poll.objects.order_by('-pub_date')[:5]
    template 
= loader.get_template('polls/index.html')
    context 
= Context({
                       
'latest_poll_list':  latest_poll_list,
                       })
    
return HttpResponse(template.render(context))


Ҏ(gu)化:(x)render()

q是个可以简化views中生成页面的APIQ让代码更简z一炏V?/p>

from django.shortcuts import render

from polls.models import Poll

def index(request):
    latest_poll_list 
= Poll.objects.order_by('-pub_date')[:5]
    context 
= {'latest_poll_list':  latest_poll_list}
    
return render(request, 'polls/index.html', context)


4、抛?04异常

detail视图找不到匹配pollhӞq回一个http404异常?br />

from django.http import Http404

def detail(request, poll_id):
    
try:
        poll 
= Poll.objects.get(pk=poll_id)
    
except Poll.DoesNotExist:
        
raise Http404
    
return  render(request, 'polls/detail.html', {'poll': poll})

 

创徏detail模板文gQ?polls/templates/polls/detail.html"Q:(x)

 

<h1>{{ poll.question }}</h1>
<ul>
{% for choice in poll.choice_set.all %}
    
<li>{{ choice.choice_text }}</li>
{% endfor %}
</ul>

   

    Ҏ(gu)化:(x)get_object_or_404()

    使用该API化模型与视图的耦合度?br />
from django.shortcuts import render, get_object_or_404
from polls.models import Poll

def detail(request, poll_id):
    poll 
= get_object_or_404(Poll, pk=poll_id)
    
return  render(request, 'polls/detail.html', {'poll': poll})

 


5、除掉模板中url的硬~码

     前者index模板中存在url编码,如果以后目polls链接发生变动Q则模板也要一起修攏V?/p>

<li><href="/polls/{{ poll.id }}/">{{ poll.question }}</a></li>

     使用模板语言?tt literal"="">{% url %}标记可以消除q种问题?/p>

<li><href="{% url 'detail' poll.id %}">{{ poll.question }}</a></li>

    通过url标记Q来调用urls.pyQ?polls/urls.py"Q配|文件中取名为detail的url链接?br />

url(r'^(?P<poll_id>\d+)/$', views.detail, name='detail'),

    如果url有所变动Q例如在原有基础上增加(“polls/specifics/12/Q?/p>

url(r'^specifics/(?P<poll_id>\d+)/$', views.detail, name='detail'),


    6、URL命名I间

    目存在多个应用Ӟ不同应用之间url名字可能存在重复。给每个应用加上命名I间以避免命名冲H问题?/p>

    l项目的url配置文gQ?mysite/urls.py"Q加上命名空_(d)(x)

from django.conf.urls import patterns, include, url

from django.contrib import admin
admin.autodiscover()

urlpatterns 
= patterns('',
    url(r
'^polls/', include('polls.urls', namespace="polls")),
    url(r
'^admin/', include(admin.site.urls)),
)

 

    index.html调用url标记Ӟ加上命名I间前缀?br />

<li><href="{% url 'polls:detail' poll.id %}">{{ poll.question }}</a></li>






]]>Django官方文档学习(fn)W记QTutorial: Part 4http://www.aygfsteel.com/Man/archive/2013/05/10/397707.html此号已被?/dc:creator>此号已被?/author>Fri, 10 May 2013 07:36:00 GMThttp://www.aygfsteel.com/Man/archive/2013/05/10/397707.htmlhttp://www.aygfsteel.com/Man/comments/397707.htmlhttp://www.aygfsteel.com/Man/archive/2013/05/10/397707.html#Feedback0http://www.aygfsteel.com/Man/comments/commentRss/397707.htmlhttp://www.aygfsteel.com/Man/services/trackbacks/397707.html
    一、写一个表?/strong>
    修改原来的detail.html模板Q?polls/templates/polls/detail.html"Q:(x)
<h1>{{ poll.question }}</h1>

{% if error_message %}
<p><strong>{{ error_message }}</strong></p>{% endif %}

<form action="{% url 'polls:vote' poll.id %}" method="post">
{% csrf_token %}
{% for choice in poll.choice_set.all %}
    
<input type="radio" name="choice" id="choice{{ forloop.counter }}" value="{{ choice.id }}" />
    
<label for="choice{{ forloop.counter }}">{{ choice.choice_text }}</label><br />
{% endfor %}
<input type="submit" value="Vote" />
</form>
    forloop.counter         for循环的次?br />
    {% csrf_token %}    避免别的|站伪造posth数据?/div>
    如代码所描述的,post之后?x)蟩到vote去,修改poll应用的views.pyQ?polls/views.py"Q实C下vote响应Ҏ(gu)?br />
# Create your views here.
from django.shortcuts import get_object_or_404, render
from django.http import HttpResponse, HttpResponseRedirect
from django.core.urlresolvers import reverse

from polls.models import Poll, Choice

def vote(request, poll_id):
    p 
= get_object_or_404(Poll, pk=poll_id)
    
try:
        selected_choice 
= p.choice_set.get(pk=request.POST['choice'])
    
except (KeyError, Choice.DoesNotExist):
        
return render(request, 'polls/detail.html', {
                                                     
'poll': p,
                                                     
'error_message'"You din't select a choice.",
                                                     })
    
else:
        selected_choice.votes 
+= 1
        selected_choice.save()
        
# Always return an HttpResponseRedirect after successfully dealing
        # with POST data. This prevents data from being posted twice if a
        # user hits the Back button.
        return HttpResponseRedirect(reverse('polls:results', args=(p.id,)))
    request.POST    Ҏ(gu)key讉Kpost提交的数据。同理geth则用request.GET
    request.POST['choice']    如果post数据中没有choiceQ会(x)爆出KeyError异常?br />    HttpResponseRedirect    面重定向。避免post多次?br />    reverse()    调用url链接Q避免硬~码?br />
    创徏results模板文gQ?span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">"polls/templates/polls/results.html"Q?/span>?br />
<h1>{{ poll.question }}</h1>

<ul>
{% for choice in poll.choice_set.all %}
    
<li>{{ choice.choice_text }} -- {{ choice.votes }} vote{{ choice.votes|pluralize }}</li>
{% endfor %}
</ul>

<href="{% url 'polls:detail' poll.id %}">Vote again?</a>

    二、用通用视图Q减代?/strong>
    在web开发中Q从数据库查询,q渲染模杉K面到昄Q这是个很常见的情况。Django提供?jin)一个用来快速生成视囄“generic views”pȝ。可以将通用的ListView、DetailView的渲染通过它在URLconf中完成?br />    修改URLconf
    修改poll应用的urls配置文gQ?polls/urls.py"Q:(x)
from django.conf.urls import patterns, url
from django.views.generic import ListView
from django.views.generic.detail import DetailView
from polls.models import Poll

urlpatterns 
= patterns('',
    
# ex: /polls/
    url(r'^$', ListView.as_view(queryset=Poll.objects.order_by('-pub_date')[:5],
                                context_object_name
='latest_poll_list',
                                template_name
='polls/index.html'), name='index'),
    
# ex: /polls/5/
    url(r'^(?P<pk>\d+)/$', DetailView.as_view(
                                                   model
=Poll,
                                                   template_name
='polls/detail.html'
                                                   ), name
='detail'),
    
# ex: /polls/5/results/
    url(r'^(?P<pk>\d+)/results/$', DetailView.as_view(
                                                   model
=Poll,
                                                   template_name
='polls/results.html'
                                                   ), name
='results'),
     
# ex: /polls/5/vote/
    url(r'^(?P<poll_id>\d+)/vote/$''polls.views.vote', name='vote'),
)
   
    修改views
    到此Q可以把原视图("polls/views.py"Q中的index()、detail()、results()Ҏ(gu)删掉?jin)?/div>
    q里使用?jin)ListView、DetailView。需要注意的是,DetailView使用“pk”d配url中的id?br />    DetailView、ListView默认分别调用“<app_name>/<model_name>_detail.html”?#8220;<app_name>/<model_name>_list.html”模板Q可以通过“template_name”参数指定特定的模ѝ?br />    ListView默认生成的传递给模板的上下文变量?#8220;<model_name>_list”Q可通过“context_object_name”参数来指定传输变量?br />   

]]>Django官方文档学习(fn)W记QTutorial: Part 2http://www.aygfsteel.com/Man/archive/2013/05/10/397477.html此号已被?/dc:creator>此号已被?/author>Fri, 10 May 2013 07:35:00 GMThttp://www.aygfsteel.com/Man/archive/2013/05/10/397477.htmlhttp://www.aygfsteel.com/Man/comments/397477.htmlhttp://www.aygfsteel.com/Man/archive/2013/05/10/397477.html#Feedback0http://www.aygfsteel.com/Man/comments/commentRss/397477.htmlhttp://www.aygfsteel.com/Man/services/trackbacks/397477.html    一、自动生成admin界面
    1、激zadmin site功能   
    修改"mysite/settings.py"文gQ在INSTALLED_APPS属性去?django.contrib.admin'注释?br />
    修改"mysite/urls.py"文gQ去掉如下三行的注释Q?br />
from django.contrib import admin
admin.autodiscover()

url(r
'^admin/', include(admin.site.urls)),
    执行“python manage.py syncdb”命o(h)该模块映射到数据库卛_?br />
    2、启动开发服务器   
    q行“python manage.py runserver”启动serverQ默?000端口Q端口有冲突重新制定Q上提到过的)(j)?br />
    启动成功后,卛_以浏览器打开“http://127.0.0.1:8000/admin”Q用之前创徏的super user账户d?jin)?br />    默认q看不到pollsQ需要把它注册到admin中?br />    ?#8220;mysite/polls”目录下创建admin.py文gQ内容如下:(x)
from django.contrib import admin
from polls.models import Poll

admin.site.register(Poll)
    重启服务器登录,可以看到根据Poll模板自动生成的CRUD表单?jin)?br />
    3、自定义admin表单
    多个属性时Q如何控制各属性显C时的先后关p?
    通过修改admin.py,来定义表单显C的格式.

from django.contrib import admin
from polls.models import Poll, Choice

class ChoiceInline(admin.TabularInline): #    admin.StackedInline
    model = Choice
    extra 
= 3
    
class PollAdmin(admin.ModelAdmin):
#    fields = ['pub_date', 'question']

    fieldsets 
= [
            (None,                          {
'fields': ['question']}),
            (
'Date information',    {'fields': ['pub_date'],    'classes': ['collapse']}),
    ]
    inlines 
= [ChoiceInline]
    list_display 
= ('question''pub_date''was_published_recently')
    list_filter 
= ['pub_date']
    search_fields 
= ['question']
    date_hierarchy 
= 'pub_date'

admin.site.register(Poll, PollAdmin)
admin.site.register(Choice)
    属性比较少?直接通过"fields = ['pub_date', 'question']"?span>定先后序卛_.
    而属性比较多?则可通过讄fieldsets来制定显C效?
    效果如下?

    Poll表单Q?br />    'Date information'            新表单标?
    'collapse'                         django自带的隐藏样?
    “inlines = [ChoiceInline]”   Choice表单昄在Poll?
    admin.StackedInline         Choice属性垂直显C?
    admin.TabularInline          Choice属性水qxC?
   
    Poll list记录Q?br />
    修改"mysite/polls/models.py"文gQ设|相兛_性的昄样式?div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all">class Poll(models.Model):
    question 
= models.CharField(max_length=200)
    pub_date 
= models.DateTimeField('date published')
    
    
def __unicode__(self):
        
return self.question
    
def was_published_recently(self):
        
return self.pub_date >= timezone.now() - datetime.timedelta(days=1)
    was_published_recently.admin_order_field 
= 'pub_date'
    was_published_recently.boolean 
= True
    was_published_recently.short_description 
= 'Published recently?'

    list_display = ('question''pub_date''was_published_recently')  指定poll list记录面昄那些字段
    list_filter 
= ['pub_date']    右侧的过滤器Qdjango自带日期选项
    search_fields 
= ['question']    上端搜烦(ch)框;制定搜烦(ch)的属性范_(d)like匚w
    date_hierarchy 
= 'pub_date'   日期分层DQ根据记录日期年月日自动分类

    二、自定义admin外观
    创徏“mysite/templates”目录Q修?mysite/settings.py"文gQ在TEMPLATE_DIRS属性中配置该目录位|?br />    q入django安装目录Q?..\Python27\Lib\site-packages\django\contrib\admin\templatesQ,把你需要修改的文gQ拷贝到目“mysite/templates”目录下,修改成你需要的效果Q服务器启动时会(x)自动从此处加载?br />   


]]>Django官方文档学习(fn)W记QTutorial: Part 1 http://www.aygfsteel.com/Man/archive/2013/04/07/397311.html此号已被?/dc:creator>此号已被?/author>Sun, 07 Apr 2013 10:35:00 GMThttp://www.aygfsteel.com/Man/archive/2013/04/07/397311.htmlhttp://www.aygfsteel.com/Man/comments/397311.htmlhttp://www.aygfsteel.com/Man/archive/2013/04/07/397311.html#Feedback0http://www.aygfsteel.com/Man/comments/commentRss/397311.htmlhttp://www.aygfsteel.com/Man/services/trackbacks/397311.html阅读全文

]]>
վ֩ģ壺 | | ͨ| | | | | Ȫ| | | ɽ| ʯɽ| | | | | ӽ| | | | ɯ| | | | | â| | ޼| | | | ³| | | | ߰| | ״| | | |