2017-12-27 23 views
0

나는이 model.py이 , 그래서 :장고 관리자 list_display 모델 방법

class MymodelAdmin(admin.ModelAdmin): 
    #list_display = (..., model.Mymodel.toppings_list(), ...) #Error: missing 1 required positional argument: 'self' 
    #list_display = (..., model.Mymodel.toppings_list(self), ...) #Error: self is not definited 
    list_display = (..., model.Mymodel.toppings_list, ...) #Gibberish: <django.db.models.fields.related_descriptors.ManyToManyDescriptor object at 0x0387FFD0> 

오직 작동하지만 아무것도 유용하지 않습니다. 나도 이러한 시도

(I 표시하기 전에 목록의 형식을 원하는) :

class MymodelAdmin(admin.ModelAdmin): 
    mylist=model.Mymodel.toppings_list #I don't change nothing for now 
    #mylist=[t for t in model.Mymodel.toppings_list] #Error: 'function' object is not iterable 
    list_display = ('mylist') #core.Topping.None 

다시, 마지막 하나는하지만, 작동 유용 아무것도 (도 토핑하지 아무도 없음)

을 제공하지 않습니다

고마워요

답변

1

문자열 이름으로 메서드 이름을 사용하기 만하면됩니다.

list_display = ("toppings_list", ...) 

그러나 toppings_list 메소드 자체는 전혀 의미가 없습니다. 필드 개체가 아닌 현재 개체와 관련된 토핑을 반환해야하므로 문자열로 서식을 지정해야합니다.

def toppings_list(self): 
    return ", ".join(self.toppings.values_list("name", flat=True))