2013-02-05 62 views
3

注意:具體問題在下文結束。首先描述我穿過的所有步驟:-))創建第一個Django項目:admin網頁將無法打開

在Windows上使用Python 2.7和Django 4.2.1 。

我創建了一個名爲「mysite的」項目,該項目是在docs.djangoproject.com使用的項目。

到目前爲止,我已經做了以下就像在教程:

1)類型:django-admin.py startproject mysite 這創造了所有的標準文件夾,它們是:

mysite/ 
    manage.py 
    mysite/ 
     __init__.py 
     settings.py 
     urls.py 
     wsgi.py 

2)類型:管理.py運行服務器 ,並在地址欄中輸入http://127.0.0.1:8000時,我收到了祝賀消息。

到目前爲止,這麼好..

3)然後我編輯settings.py文件。首先,我編輯的數據庫引擎中鍵入以下內容:

'django.db.backends.sqlite3' 

4)仍然在settings.py,我指出一個數據庫名稱,以便它創建一個數據庫文件。我把它叫做:

'mysitedb' 

5)然後,我通過鍵入同步數據庫(創建表):

manage.py syncdb 

6)然後教程要求創建一個名爲投票的應用程序。所以我輸入:

manage.py startapp polls 

創建以下文件夾和文件:

polls/ 
    __init__.py 
    admin.py 
    models.py 
    tests.py 
    views.py 

7),那麼該教程要求通過鍵入編輯models.py如下:

from django.db import models 
import datetime 
from django.utils import timezone 

class Poll(models.Model): 
    question = models.CharField(max_length=200) 
    pub_date = models.DateTimeField('date published') 

    def __unicode__(self): 
     return self.question 

class Choice(models.Model): 
    poll = models.ForeignKey(Poll) 
    choice_text = models.CharField(max_length=200) 
    votes = models.IntegerField() 

    def __unicode__(self): 
     return self.choice_text 

    def was_published_recently(self): 
     return self.pub_date >= timezone.now() - datetime.timedelta(days=1) 

8)一起運動,我然後我就通過鍵入編輯settings.py文件的INSTALLED_APPS部分如下:

INSTALLED_APPS = (
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'polls', 
) 

9)然後我鍵入以下內容來創建表和它們的字段(I猜..):

manage.py sql polls 

然後將下面的打印輸出:

BEGIN; 
CREATE TABLE "polls_poll" (
    "id" integer NOT NULL PRIMARY KEY, 
    "question" varchar(200) NOT NULL, 
    "pub_date" datetime NOT NULL 
); 
CREATE TABLE "polls_choice" (
    "id" integer NOT NULL PRIMARY KEY, 
    "poll_id" integer NOT NULL REFERENCES "polls_poll" ("id"), 
    "choice_text" varchar(200) NOT NULL, 
    "votes" integer NOT NULL 
); 
COMMIT; 

10)然後我不得不鍵入此創建表(同步):

manage.py syncdb 

到目前爲止,還是那麼好..

10)然後他們建議我在命令中運行python shell並使用數據庫API進行操作。在那一刻,一切都很好。可以在表格的字段中添加數據等

但是,這裏是不起作用的地方。從教程的第2部分。我必須再次運行服務器(我這樣做了:manage.py runserver,並且它工作正常..)。 我打開瀏覽器網頁並輸入http://127.0.0.1:8000/admin/,我得到相同的「它的工作!祝賀你的第一個Django供電頁...」

沒有錯誤信息。那麼如何讓用戶登錄的管理頁面(用戶名和密碼)出現?

任何幫助將不勝感激。 謝謝!

+3

您是否在urls.py url中添加了管理網址(r'^ admin /',include(admin.site.urls))'?或者你忘了添加'admin.autodiscover()'到urls.py?這些通常是導致它無法工作的兩大罪魁禍首。 :) –

+0

@limelights:你應該轉換你的評論回答,因爲這就是它!與你的兩個建議,它的工作原理! – Sylvain

+0

完成;)很高興工作! –

回答

5

通常,當Django中的管理員不工作時,兩個主要元兇忘了將以下兩行添加到urls.py文件中。

admin.autodiscover() 

url(r'^admin/', include(admin.site.urls)) 

現在你可以繼續使用教程,並當您在admin.py模型註冊,不要忘記

admin.site.register(MyModelGoesHere, MyModelAdminNameGoesHere) 

祝你好運! :)

+0

非常好!有用 ;-) – Sylvain