2017-04-18 5 views
0

저는 장고 1.11을 사용하여 첫 번째 프로젝트를 시작하고 있습니다. 여러 Django 1.10 프로젝트에서 사용했던 것과 동일한 단계를 밟았지만 어떤 이유로 내 모델이 localhost/admin 사이트에 나타나지 않습니다. settings.py에서모델이 장고 관리자에게 표시되지 않습니다

내 INSTALLED_APPS :

INSTALLED_APPS = [ 
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'home.apps.HomeConfig', 
] 

내 admin.py :

from django.contrib import admin 

from home.models import Home 

# begin Admin Class Definitions 
class HomeAdmin(models.ModelAdmin): 

    fieldsets = [ 
     ('Title', {'fields': ['title']}), 
     ('Publication Date', {'fields': ['pub_date']}), 
     ('Home Page Text', {'fields': ['header', 'sub_header', 
     'link_text']}), 
    ] 
    list_display = ('title', 'pub_date') 
    list_filter = ['pub_date'] 

admin.site.register(Home, HomeAdmin) 

내 [main_app] /urls.py :

from django.conf.urls import url, include 
from django.contrib import admin 

admin.autodiscover() 

urlpatterns = [ 
    url(r'^admin/', admin.site.urls), 
    url(r'^', include('home.urls')) 
] 

하지만 이동 localhost:8000/admin까지는 내가 등록한 모델이없는 그룹 및 사용자 만 있습니다.

저는 makemigrations를 실행하고 마이그레이션했습니다. 프로젝트 디렉토리 대신 app.py 디렉토리에 admin.py를 넣으려고했습니다. 현재 [project_name]/[project_name] 디렉토리 (settings.py, urls.py 및 wsgi.py 파일이있는 디렉토리)에 있습니다.

제안 사항?

+0

'admin.autodiscover()'를 제거하는 방법은 무엇입니까 ?? –

+0

변경되지 않음, 불행히도 – Jay

+0

'home.apps.HomeConfig'란 무엇입니까? 앱이 '집'이라면 설치된 앱에 '집'이 나열되어야합니다. 또한 목록 맨 위에 올려 놓으십시오. – allcaps

답변

0

나는 항상이 형태로 가져 장고 관리자를 사용하는 경우 : 클래스에

from django.contrib import admin 

을 그리고 inherint :

class HomeAdmin(admin.ModelAdmin): 

그래서 당신의 admin.py 파일은 다음과 같이 looke 것 :

from django.contrib import admin 

from home.models import Home 

# begin Admin Class Definitions 
class HomeAdmin(admin.ModelAdmin): 

    fieldsets = [ 
     ('Title', {'fields': ['title']}), 
     ('Publication Date', {'fields': ['pub_date']}), 
     ('Home Page Text', {'fields': ['header', 'sub_header', 
     'link_text']}), 
    ] 
    list_display = ('title', 'pub_date') 
    list_filter = ['pub_date'] 

admin.site.register(Home, HomeAdmin) 
+0

정확히 원래 질문에 내 admin.py처럼 보입니다. 클래스 HomeAdmin (models.ModelAdmin) : – Jay

+0

이 잘 클래스에서 당신이 및 models.ModelAdmin가 어디에서 왔는지 모른다, 는 사용해보십시오 : admin.ModelAdmin – jspblm

+1

오, 세상에 당신 말이 맞아. 바로 거기에 문제가있었습니다. snarky 인 것에 대해 유감스럽게 생각합니다. – Jay

1

관리자에게 모델을 등록해야한다고 생각합니다. 나는 그것이 단순한 모델이라면 보통 이렇게 좋아한다.

from django.contrib import admin 
    from .models import * 

    # Register your models here. 
    @admin.register(Model) 
    class ModelAdmin(admin.ModelAdmin): pass 
+0

데코레이터에'admin.site.register (Model, ModelAdmin)'로 등록하려고 시도했지만 어느 쪽도 효과가 없습니다. – Jay

0

내 문제를 진단하는 것을 포기하고 프로젝트를 중단하고 다시 시작했습니다. 지금은 잘 작동합니다. 나는 그 문제가 무엇인지 정직하게 알지 못한다. admin.py에서

from django.conf.urls import url 
from django.contrib import admin 

urlpatterns = [ 
    url(r'^admin/', admin.site.urls), 
] 

:

settings.py에서

:

INSTALLED_APPS = [ 
    'home', 
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
] 

urls.py에서

from django.contrib import admin 

# Register your models here. 
from .models import HomePageText 

admin.site.register(HomePageText) 
사람이 궁금하면 여기에 나의 새로운 파일입니다

솔직히 왜 그것이 작동하지 않았는지 이해하지 못합니다. 더 많은 통찰력을 가진 사람이라면 어떤 차이점을 발견 할 수 있는지 알려주세요.

관련 문제