Django (iv) the first Django app automatically generates admin site

Source: Internet
Author: User
<span id="Label3"></p> <blockquote> <p><p><span id="tran_0" class="copied" data-aligning="#tran_0,#src_0">Building a management site to let your employees or customers add, change, and delete content is a tedious task <span id="tran_1" class="copied" data-aligning="#tran_1,#src_1">. <span id="tran_2" class="copied" data-aligning="#tran_2,#src_2">for this reason, Django fully automates the creation of the management interface Model. <span id="tran_3" class="copied" data-aligning="#tran_3,#src_3">Django explicitly separates "content publishers" from " <span id="tran_4" class="copied" data-aligning="#tran_4,#src_4">public" Sites. <span id="tran_5" class="copied" data-aligning="#tran_5,#src_5">The website manager uses this system to add news, events, sports scores, etc... Display content <span id="tran_6" class="copied" data-aligning="#tran_6,#src_6">on public web Sites. <span id="tran_7" class="copied" data-aligning="#tran_7,#src_7">Django creates a unified interface for site administrators to edit Content. </span></span></span></span></span></span></span></span></p></p> <p><p><span class="copied" data-aligning="#tran_0,#src_0"><span class="copied" data-aligning="#tran_1,#src_1"><span class="copied" data-aligning="#tran_2,#src_2"><span class="copied" data-aligning="#tran_3,#src_3"><span class="copied" data-aligning="#tran_4,#src_4"><span class="copied" data-aligning="#tran_5,#src_5"><span class="copied" data-aligning="#tran_6,#src_6"><span class="copied" data-aligning="#tran_7,#src_7">So admin is not for the Web browser to use, but for managers to Use.</span></span></span></span></span></span></span></span></p></p> </blockquote><p><p>below, we add the Admin app to our Project. Modify the setting.py as Follows:</p></p><pre>Installed_apps =<span style="color: #000000;"><span style="color: #000000;"> ( </span></span><span style="color: #800000;"><span style="color: #800000;">'</span></span><span style="color: #800000;"><span style="color: #800000;">Django.contrib.auth</span></span><span style="color: #800000;"><span style="color: #800000;">'</span></span><span style="color: #000000;"><span style="color: #000000;">, </span></span><span style="color: #800000;"><span style="color: #800000;">'</span></span><span style="color: #800000;"><span style="color: #800000;">Django.contrib.contenttypes</span></span><span style="color: #800000;"><span style="color: #800000;">'</span></span><span style="color: #000000;"><span style="color: #000000;">, </span></span><span style="color: #800000;"><span style="color: #800000;">'</span></span><span style="color: #800000;"><span style="color: #800000;">django.contrib.sessions</span></span><span style="color: #800000;"><span style="color: #800000;">'</span></span><span style="color: #000000;"><span style="color: #000000;">, </span></span><span style="color: #800000;"><span style="color: #800000;">'</span></span><span style="color: #800000;"><span style="color: #800000;">django.contrib.sites</span></span><span style="color: #800000;"><span style="color: #800000;">'</span></span><span style="color: #000000;"><span style="color: #000000;">, </span></span><span style="color: #800000;"><span style="color: #800000;">'</span></span><span style="color: #800000;"><span style="color: #800000;">django.contrib.messages</span></span><span style="color: #800000;"><span style="color: #800000;">'</span></span><span style="color: #000000;"><span style="color: #000000;">, </span></span><span style="color: #800000;"><span style="color: #800000;">'</span></span><span style="color: #800000;"><span style="color: #800000;">Django.contrib.staticfiles</span></span><span style="color: #800000;"><span style="color: #800000;">'</span></span><span style="color: #000000;"><span style="color: #000000;">, </span></span><span style="color: #800000;"><span style="color: #800000;">'</span></span><span style="color: #800000;"><span style="color: #800000;">polls</span></span><span style="color: #800000;"><span style="color: #800000;">',<br></span></span> <span style="color: #800000;"><span style="color: #800000;">'</span></span><span style="color: #800000;"><span style="color: #800000;">Django.contrib.admin</span></span><span style="color: #800000;"><span style="color: #800000;">'</span></span><span style="color: #000000;"><span style="color: #000000;">, </span></span><span style="color: #008000;"><span style="color: #008000;">#</span></span><span style="color: #008000;"><span style="color: #008000;">uncomment the next line to enable admin documentation:</span></span> <span style="color: #008000;"><span style="color: #008000;">#</span></span><span style="color: #008000;"><span style="color: #008000;">' Django.contrib.admindocs ',</span></span>)</pre><p><p>Re-execute:</p></p><pre><pre>manage.py syncdb</pre></pre><p><p>Modify the mysite/urls.py as Follows:</p></p><pre><span style="color: #0000ff;"><span style="color: #0000ff;"></span> from</span>Django.conf.urls<span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">patterns, include, URL</span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> from</span>Django.contrib<span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">adminadmin.autodiscover () urlpatterns</span></span>= Patterns (<span style="color: #800000;"><span style="color: #800000;">"'</span></span><span style="color: #000000;"><span style="color: #000000;">, </span></span><span style="color: #008000;"><span style="color: #008000;">#</span></span><span style="color: #008000;"><span style="color: #008000;">Examples:</span></span> <span style="color: #008000;"><span style="color: #008000;">#</span></span><span style="color: #008000;"><span style="color: #008000;">url (r ' ^$ ', ' mysite.views.home ', name= ' Home '),</span></span> <span style="color: #008000;"><span style="color: #008000;">#</span></span><span style="color: #008000;"><span style="color: #008000;">URL (r ' ^mysite/', include (' mysite.foo.urls ')),</span></span> <span style="color: #008000;"><span style="color: #008000;">#</span></span><span style="color: #008000;"><span style="color: #008000;">Uncomment the Admin/doc line below to enable admin documentation:</span></span> <span style="color: #008000;"><span style="color: #008000;">#</span></span><span style="color: #008000;"><span style="color: #008000;">URL (r ' ^admin/doc/', include (' django.contrib.admindocs.urls ')),</span></span><span style="color: #000000;"><span style="color: #000000;">URL (r</span></span><span style="color: #800000;"><span style="color: #800000;">'</span></span><span style="color: #800000;"><span style="color: #800000;">^admin/</span></span><span style="color: #800000;"><span style="color: #800000;">'</span></span><span style="color: #000000;"><span style="color: #000000;">, include (admin.site.urls)),)</span></span></pre><span class="cnblogs_code_collapse"><span class="cnblogs_code_collapse">View Code</span></span><p><p>ok, Next we start the Server:</p></p><pre><pre>manage.py Runserver</pre></pre><p><p>To login http://127.0.0.1:8000/admin/, you will see the following interface:<br><span id="tran_0" class="copied" data-aligning="#tran_0,#src_0"></span></p></p><p><p>ok~ You can enter the username and password of the database you initialized, click on the log in you will see the following screen:</p></p><p><p></p></p><p><p>These are the core features that site administrators can use.</p></p><p><p>But where is the voting function? ok, Next we will tell admin our poll object needs to have an admin interface, in order to achieve this task, we need to create a new admin.py file under mysite/polls/, then the content is as Follows:</p></p><pre><pre><span style="color: #0000ff;"></span> from <span style="color: #0000ff;">Import</span> <span style="color: #000000;">Admin</span> <span style="color: #0000ff;"></span> from <span style="color: #0000ff;">Import</span> <span style="color: #000000;">Polladmin.site.register (Poll)</span></pre></pre><p><p>At this point, you need to restart the server manually to refresh the Page. (because a new file was Created)<br>Click Add to the right of the poll entry, adding question:who is the most handsome man? enter the date, and finally save:</p></p><p><p></p></p> <blockquote> <blockquote> <p><span id="tran_0" class="copied" data-aligning="#tran_0,#src_0">By registering the voting model <span id="tran_1" class="copied" data-aligning="#tran_1,#src_1">Admin.site.register (Poll), Django is able to construct a default form. when <span id="tran_2" class="copied" data-aligning="#tran_2,#src_2">you want to <span id="tran_3" class="copied" data-aligning="#tran_3,#src_3">customize the appearance and functionality of the admin app, you need to explain it when registering the Object. </span></span></span></span></p> </blockquote> </blockquote><p><p>Let's take a look at how to reorder the Form's presentation order and delete the original code:</p></p><pre><pre>Admin.site.register (Poll)</pre></pre><p><p>Replace with the following code:</p></p><pre><pre><span style="color: #0000ff;">class</span> <span style="color: #000000;">Polladmin (admin. modeladmin): </span>= [<span style="color: #800000;">'</span><span style="color: #800000;">pub_date</span><span style="color: #800000;">'</span><span style="color: #800000;"></span><span style="color: #800000;">question</span><span style="color: #800000;">'</span><span style="color: #000000;">] Admin.site.register (Poll, Polladmin)</span></pre></pre> <blockquote> <blockquote> <p><span id="tran_0" class="copied" data-aligning="#tran_0,#src_0">You will follow this pattern: create a Model Management object and pass it as the second parameter <span id="tran_1" class="copied" data-aligning="#tran_1,#src_1">to Admin.site.register (). </span></span></p> </blockquote> </blockquote><p><p>The order of the show was exchanged, and the time was shown in front of the Question.</p></p><p><p></p></p><p><p>You can also modify the order in more ways as Follows:</p></p><pre><pre><span style="color: #0000ff;">class</span> <span style="color: #000000;">Polladmin (admin. modeladmin): </span>= [(None, {<span style="color: #800000;">'</span><span style="color: #800000;"></span>fields<span style="color: #800000;">'</span>: [<span style="color: #800000;">'</span><span style="color: #800000;">question</span><span style="color: #800000;">'</span><span style="color: #000000;">] }), (</span><span style="color: #800000;">'</span><span style="color: #800000;">Date information</span><span style="color: #800000;">'</span>, {<span style="color: #800000;">'</span><span style="color: #800000;"></span>fields<span style="color: #800000;">'</span>: [ <span style="color: #800000;"> '</span><span style="color: #800000;">pub_date</span><span style="color: #800000;">'</span><span style="color: #000000;">]}),]admin.site.register (Poll, polladmin)</span></pre></pre><p><p>Show Below:<br></p></p><p><p>You can also let one of the entries be hidden (expandable), such as Date:</p></p><pre><span style="color: #0000ff;"><span style="color: #0000ff;">class</span></span><span style="color: #000000;"><span style="color: #000000;">Polladmin (admin. modeladmin): FieldSets</span></span>= [(None, {<span style="color: #800000;"><span style="color: #800000;">'</span></span><span style="color: #800000;"><span style="color: #800000;"></span> fields</span><span style="color: #800000;"><span style="color: #800000;">'</span></span>: [<span style="color: #800000;"><span style="color: #800000;">'</span></span><span style="color: #800000;"><span style="color: #800000;">question</span></span><span style="color: #800000;"><span style="color: #800000;">'</span></span><span style="color: #000000;"><span style="color: #000000;">]}), (</span></span><span style="color: #800000;"><span style="color: #800000;">'</span></span><span style="color: #800000;"><span style="color: #800000;">Date Information</span></span><span style="color: #800000;"><span style="color: #800000;">'</span></span>, {<span style="color: #800000;"><span style="color: #800000;">'</span></span><span style="color: #800000;"><span style="color: #800000;"></span> fields</span><span style="color: #800000;"><span style="color: #800000;">'</span></span>: [<span style="color: #800000;"><span style="color: #800000;">'</span></span><span style="color: #800000;"><span style="color: #800000;">pub_date</span></span><span style="color: #800000;"><span style="color: #800000;">'</span></span>],<span style="color: #800000;"><span style="color: #800000;">'</span></span><span style="color: #800000;"><span style="color: #800000;">Classes</span></span><span style="color: #800000;"><span style="color: #800000;">'</span></span>: [<span style="color: #800000;"><span style="color: #800000;">'</span></span><span style="color: #800000;"><span style="color: #800000;">collapse</span></span><span style="color: #800000;"><span style="color: #800000;">'</span></span><span style="color: #000000;"><span style="color: #000000;">]}),]admin.site.register (Poll, Polladmin)</span></span></pre><p><p></p></p><p><p>next, we will add the choice object, here are two ways, the first is the same as poll, as Follows:</p></p><pre><span style="color: #008000;"><span style="color: #008000;">#</span></span><span style="color: #008000;"><span style="color: #008000;">-*-coding:utf-8-*-</span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> from</span>Django.contrib<span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">Admin</span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> from</span>Polls.models<span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">Poll</span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> from</span>Polls.models<span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">Choice</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">class</span></span><span style="color: #000000;"><span style="color: #000000;">Polladmin (admin. modeladmin): FieldSets</span></span>= [(None, {<span style="color: #800000;"><span style="color: #800000;">'</span></span><span style="color: #800000;"><span style="color: #800000;"></span> fields</span><span style="color: #800000;"><span style="color: #800000;">'</span></span>: [<span style="color: #800000;"><span style="color: #800000;">'</span></span><span style="color: #800000;"><span style="color: #800000;">question</span></span><span style="color: #800000;"><span style="color: #800000;">'</span></span><span style="color: #000000;"><span style="color: #000000;">]}), (</span></span><span style="color: #800000;"><span style="color: #800000;">'</span></span><span style="color: #800000;"><span style="color: #800000;">Date Information</span></span><span style="color: #800000;"><span style="color: #800000;">'</span></span>, {<span style="color: #800000;"><span style="color: #800000;">'</span></span><span style="color: #800000;"><span style="color: #800000;"></span> fields</span><span style="color: #800000;"><span style="color: #800000;">'</span></span>: [<span style="color: #800000;"><span style="color: #800000;">'</span></span><span style="color: #800000;"><span style="color: #800000;">pub_date</span></span><span style="color: #800000;"><span style="color: #800000;">'</span></span>],<span style="color: #800000;"><span style="color: #800000;">'</span></span><span style="color: #800000;"><span style="color: #800000;">Classes</span></span><span style="color: #800000;"><span style="color: #800000;">'</span></span>: [<span style="color: #800000;"><span style="color: #800000;">'</span></span><span style="color: #800000;"><span style="color: #800000;">collapse</span></span><span style="color: #800000;"><span style="color: #800000;">'</span></span><span style="color: #000000;"><span style="color: #000000;">]}),]admin.site.register (Poll, polladmin) admin.site.register (Choice)</span></span></pre><p><p>Restart the server, load the page, add choice, the following screen appears:<br></p></p><p><p>At this time, the poll entry in the choice is a drop-down box with all the poll objects in the database, and Django knows that as long as the foreign key will show a Drop-down box, when you click on the right + sign, you will automatically jump to the poll editing interface.</p></p><p><p>Another more effective way is to</p></p><p><p>Django (iv) the first Django app automatically generates admin site</p></p></span>

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.