2013-07-17 52 views
6

我是一位與Django一起苦苦掙扎的前端開發人員。我的基礎很差,但我在以下幾點碰到了牆。Django:model.py中新增的類未在管理站點中顯示

我有一個網站在本地運行,也在開發機器上運行。本地我已經爲現有的應用程序添加了額外的類模型,將其註冊到相關的admin.py中並在設置中進行檢查。當地的新班級和相關領域出現在管理員,但當我把這一切都開發他們沒有出現。該應用程序被稱爲「發佈」。

我的方法如下:

  1. 創建在發佈> models.py文件中的新類:
 

    class Whitepaper(models.Model): 
     title = models.CharField(max_length=200) 
     slug = models.SlugField(max_length=100, blank=True) 
     pub_date = models.DateField('date published') 
     section = models.ForeignKey('Section', related_name='whitepapers', blank=True, null=True) 
     description = models.CharField(max_length=1000) 
     docfile = models.FileField(upload_to="whitepapers/%Y/%m/%d", null=True, blank=True) 

  1. 更新和遷移模型與韓國使用:
python manage.py schemamigration publish --auto

python manage.py migrate publish
  1. 註冊於admin.py文件中的類:
 

    from models import Section, Tag, Post, Whitepaper 
    from django.contrib import admin 
    from django import forms 

    admin.site.register(Whitepaper) 

該應用在settings.py文件中列出:

 

    INSTALLED_APPS = (
     ..., 
     ..., 
     'publish', 
     ..., 

)

作爲這是在託管其他幾個測試區域的開發服務器上運行的,重新啓動整個事情已經不復存在了所以我一直在'接觸'.wsgi文件。

在我的本地版本中,得到的模型和字段顯示在管理員中,但在開發服務器上,他們無處可見。

我錯過了什麼?

謝謝你們聰明的人。

+0

您是否在開發服務器上運行遷移? – karthikr

+0

是的,我做到了,但沒有運氣。順便說一句,當我推送到實時服務器的過程中。 – Marnchair

回答

6

我想出了這個問題。原來我用來進入管理員的登錄名沒有超級用戶權限。所以我做了一個新的:

python manage.py createsuperuser 

用新的用戶名和密碼登錄後,我可以看到我所有新的閃亮表!

+1

我有同樣的問題。非常感謝。 –

+0

我怎樣才能讓這個模型公開不僅僅是超級用戶? –

0

是否確定觸摸.wsgi文件確實會重新啓動您的應用?

看起來好像沒有。

確保應用程序已重新啓動。找到觸摸的證據.wsgi文件可能會重新啓動應用程序。

由於您沒有提供有關dev服務器如何運行應用程序的任何信息,我們將無法爲您提供幫助。

+0

感謝您的回覆。我想有可能觸摸不適用於該特定的應用程序。它肯定適用於其他應用程序。無論如何,我推送到現場服務器,整個過程在那裏工作得很好。我的印象是,觸摸.wsgi是讓服務器重新啓動環境而不是重新啓動的唯一方法。 – Marnchair

+0

我相信服務器在mod_wsgi上運行。觸摸wsgi文件將重新編譯.pyc文件,並在數據庫中創建新表。我真的不明白爲什麼新的字段沒有顯示在管理員中。 在服務器上工作時,我錯過了另一個步驟嗎? – Marnchair

+0

這是因爲服務器可能沒有重啓。你確定嗎? –

相關問題