2013-07-17 6 views
6

私はDjangoと一緒に苦労しているフロントエンド開発者です。私はかなり基本がありますが、私は次の点で壁に当たっています。Django:新しいクラスがmodel.pyに追加され、管理サイトに表示されません

私はサイトがローカルで実行されており、また、開発マシンにもあります。ローカルでは、既存のアプリケーションに追加のクラスモデルを追加し、関連するadmin.pyに登録して設定でチェックしました。ローカルでは新しいクラスと関連するフィールドが管理者に表示されますが、これをすべてdevに移動すると表示されません。このアプリは「公開」と呼ばれます。

次のように私の方法だった:

 

    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. と使用して南でモデルを移行:
    1. は公開> models.pyファイルで新しいクラスを作成しました
    python manage.py schemamigration publish --auto
    よう

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

    :アプリはsettings.pyファイルにリストされ

 

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

    admin.site.register(Whitepaper) 

:admin.pyファイル内のクラスを登録

python manage.py migrate publish
  1. これは、いくつかの他のテスト領域をホストしているdevサーバ上で実行されています。すべてを再起動することはできません私は.wsgiファイルに「触れています」。

    私のローカルバージョンでは、これはモデルとフィールドが管理者に表示されていましたが、devサーバーには表示されません。

    私には何が欠けていますか?

    ありがとう、あなたの頭がおかしいもの。

+0

devサーバーで移行を実行しましたか? – karthikr

+0

ええ、私は運がなかった。ちなみに私がライブサーバーにプッシュしたとき、プロセスは機能しました。 – Marnchair

答えて

6

問題を見つけました。管理者に入るために使用していたログインに、スーパーユーザー権限がないことがわかります。だから私は新しいものを作った:

python manage.py createsuperuser 

新しいユーザー名とパスワードでログインした後、私はすべての新しい光沢のあるテーブルを見ることができた!

+1

私は同じ問題がありました。どうもありがとう。 –

+0

スーパーユーザーだけでなく、このモデルを公開するにはどうすればよいですか? –

0

.wsgiファイルをタッチするとアプリが再起動しますか?

そうではないようです。

アプリが再起動されていることを確認してください。証拠を見つけると.wsgiファイルがアプリを再起動することがあります。

devサーバーがアプリケーションをどのように実行しているかについての洞察を提供していないため、今後はお手伝いできません。

+0

お返事ありがとうございます。私はその特定のアプリで触れていない可能性があると思います。それは確かに他のアプリのために働いています。とにかく私はライブサーバーに突き当たり、プロセス全体がうまく機能しました。私は.wsgiに触れることが、ハード再起動ではなく、環境を再起動する唯一の方法であるという印象を受けました。 – Marnchair

+0

私はサーバーがmod_wsgiで動作していると信じています。 wsgiファイルに触れると、.pycファイルが再コンパイルされ、新しいテーブルがデータベースに作成されます。なぜ新しいフィールドが管理者に表示されないのか分かりません。 サーバー上で作業するときに欠けているもう1つのステップはありますか? – Marnchair

+0

これはおそらくサーバーが再起動しなかったためです。それは本当ですか? –

関連する問題