2013-07-13 2 views
1

다른 모델의 클래스가 있어야합니다. 오디오 북에서 두번째 django admin 페이지 드롭 다운 외래 키

from django.db import models 
from labels.models import Label 


class Audiobook(models.Model): 
    """the audiobook object""" 
    title = models.TextField() 
    content = models.TextField() 
    cover = models.FilePathField() 
    playtime = models.TextField() 
    moneyLink = models.TextField() 
    status = models.BooleanField(default=False) 
    label = models.ForeignKey(Label) 

불리는 제 하나라는 라벨

from django.db import models 


class Label(models.Model): 
    """the label object""" 
    name = models.TextField() 
    description = models.TextField() 
    status = models.BooleanField(default=False) 

난 레이블 객체의 외래 키가있다.

이제 관리 클래스.

audiobook_admin :

from audiobooks.models import Audiobook 
from labels.models import Label 
from django.contrib import admin 


class LabelInline(admin.TabularInline): 
    model = Label 


class AudiobookAdmin(admin.ModelAdmin): 
    fieldsets = [ 
     (None, {'fields': ['title']}), 
     (None, {'fields': ['content']}), 
     (None, {'fields': ['cover']}), 
     (None, {'fields': ['playtime']}), 
     (None, {'fields': ['moneyLink']}), 
     (None, {'fields': ['status']}), 
     (None, {'fields': ['label']}) 
    ] 
    inlines = [LabelInline] 

admin.site.register(Audiobook, AudiobookAdmin) 

라벨 관리 클래스 : 모든 미세 레이블 부분

from labels.models import Label 
from django.contrib import admin 


class LabelAdmin(admin.ModelAdmin): 
    fieldsets = [ 
     (None, {'fields': ['name']}), 
     (None, {'fields': ['description']}), 
     (None, {'fields': ['status']}) 
    ] 

admin.site.register(Label, LabelAdmin) 

.

오디오 북 관리 페이지에서 드롭 다운 컨트롤로 레이블을 선택할 수 있습니까? 나는 새로운 오디오 북 나에게 다음과 같은 오류 입력 늘 경우 모든 도움을

Exception Value: <class 'labels.models.Label'> has no ForeignKey to <class 'audiobooks.models.Audiobook'> 

감사합니다!

답변

0

드롭 다운 컨트롤은 ForeignKey의 기본 컨트롤입니다.

기본 관리 구성 작업을해야합니다 :

from labels.models import Label 
from audiobooks.models import Audiobook 
from django.contrib import admin 

admin.site.register(Label) 
admin.site.register(Audiobook)