2011-02-06 5 views
1

, 우리가
def __unicode__(self): 그때가 당신이 장고 관리자에서 이제 장고 관리자 : 기본 모델 디스플레이 문제는 장고 모델에서

기본

으로 모델을 표시하는 방법으로 사용되는 경우, 나는 custmized을 갖고 싶어 표시 필드 (이 개체를 URL로 표시하므로이 개체를 탐색 할 수 있음)를 변경할 수 없습니다. unicode 메서드는 다른 용도로 사용됩니다. 내가 뭘해야하니? 이 기능 에 로직을 넣을 수 있도록

답변

0

돈을 반환 할 수 있습니다, 이건 그냥 아주 간단한 예입니다 관리자 클래스

 

class SomeModelAdmin(admin.ModelAdmin): 
    list_display = ('__unicode__', 'active_status') 

    def active_status(self, obj): 
     if obj.profile.is_active: 
      return """One""" 
     return """Two""" 

    active_status.allow_tags = True 
    active_status.description = "" 
 

에 대한 사용자 정의 메소드를 만들 수 있습니다 편의 URL 설정과 같은 목적으로 __unicode__을 사용하십시오.

이렇게하면 다른 목적으로 인쇄 된 개체 이름이 가려집니다.

어떤보기에서 링크를 만드시겠습니까? 변경 목록보기에서? 변경보기에서? 외래 키로부터?

일반적으로 모델 (ModelAdmin)에서 전체 HTML 링크 <a href=을 반환하고 allow_tags = True을 설정하는 방법을 정의하고 관리 필드에서 참조 할 수 있습니다.

# models method 
def admin_url(self): 
    return '<a href="%s">Edit Model</a>' % the_url 
admin_url.allow_tags = True 


# ModelAdmin method, through ForeignKey 
def admin_url(self, obj): 
    return '<a href="%s">Edit Model</a>' % obj.foreignkey.url 
admin_url.allow_tags = True 
1

당신은 '당신은 또한 일부 HTML 코드

0

나는 그 대답에 동의하지만, 내 컴퓨터에서 바로 작동하지 않습니다.

저는 Python3과 Django1.8을 사용하고 있었고 이것을 사용하려고했습니다.

class MyModel(models.Model): 

    name = models.CharField(max_length=60) 

    def __str__(self): 
     return 'MyModel: {}'.format(self.name)