2012-09-09 1 views
3

내 장고 프로젝트 관리자가 treeadmin dragy and drop thingy와 mptt model을 함께 사용하는 방법에 대한 도움을 찾고 있습니다.장고 - fk_name이란 무엇입니까?

모든 상자에서 확인을했다,하지만 난 내 admin.py에서 이것을 시도 할 때 : 유형 오브젝트 'ItemInline가'더 속성 'fk_name'을주지 않습니다

class ItemInline(TreeAdmin): 
    model = MenuItems 

class MenuAdmin(admin.ModelAdmin): 
    model = Menu 
    inlines = (ItemInline,) 

admin.site.register(Menu, MenuAdmin) 

나는 오류가 발생했습니다.

자,이 fk_name은 무엇이며 어떻게 ItemInLine에 추가합니까?

class Menu(MPTTModel): 
     name = models.CharField(max_length = 100) 

     def __unicode__(self): 
       return self.name 

class MenuItems(MPTTModel): 
     menu = models.ForeignKey(Menu) 
     name = models.CharField(max_length=50, unique=True) 
     parent = TreeForeignKey('self', null=True, blank=True, related_name='children') 
     target = models.ForeignKey(Pages,null=True, blank=True) 

     class MPTTMeta: 
       order_insertion_by = ['name'] 

     def __unicode__(self): 
       return self.name 
+0

'fk_name'이 문서에 설명되어 있습니다 : https://docs.djangoproject.com/en/dev /ref/contrib/admin/#django.contrib.admin.InlineModelAdmin.fk_name 그래서'fk_name'을 menu에 설정하면 도움이 될 것입니다. 그럼 다시 : 어떤 패키지를 사용하고 있습니까? – arie

+0

메뉴를 fk_name으로 추가 한 후에 새로운 오류가 발생했습니다. 유형 개체 'ItemInline'에 'extra'속성이 없습니다. 그리고 mptt 패키지에 대해서 .. 그게 무슨 뜻인지는 모르겠군요. 페이지 상단에 나는 이것을 가지고있다 : mptt.admin import *에서 ... – QlliOlli

답변

4

당신은 그냥 인라인으로 어떤 임의의 관리 클래스를 만들 수 없습니다 : 여기

는 경우는 아무것도 아무 상관이있다,뿐만 아니라 내 모델입니다. 실제로는 InlineModelAdmin 클래스에서 상속 받아야하며, 무엇이든 TreeAdmin은 분명히 없습니다.

당신은 믹스 인으로 InlineModelAdmin 사용하여이 문제를 해결하려고 할 수 있습니다 - 일이 :

class ItemInline(TreeAdmin, InlineModelAdmin): 
+1

Ok,이 하나를 시도하고 "__init __() 정확히 3 인수 (1 주어진) 걸립니다."... 나는 너무 이것을 얻으려면 바보입니다. 권리. 나는 무엇이 __init __()인지 전혀 모르겠다. 무엇이이 3 가지 인자이며, 왜이 클래스를 메뉴 클래스와 함께 사용하게 만드는 것이 어렵다 ... 나는 메뉴 항목을 설정하기 위해 별도의 항목을 가져야 만한다. 내 관리 부분에있는 다른 메뉴에 대한 다른 하나. 메뉴를 만들고 그 메뉴 안에 메뉴 항목을 설정하는 것은 멋지겠습니까. 이제는 메뉴 항목을 별도로 편집하고 메뉴 항목을 선택해야합니다. – QlliOlli