2014-01-28 5 views
2

Flask를 사용하여 응용 프로그램을 개발합니다. 나는 관리자 인터페이스를 위해 Postgres db (psycop2), SQLAlchemy, Flask-Admin을 사용한다. 문제가있어 해결책을 찾을 수 없습니다. 기사와 태그 테이블 간에는 다 대다 관계가 있습니다. Flask-Admin 인터페이스에서 articel (또는 그 반대) 태그를 추가하려고하면 잘 작동합니다. 하지만 그것은 끔찍하게 표시되며 객체와 같이 표시되기 때문에 올바른 태그를 선택하는 것은 불가능합니다. enter image description hereFlask-Admin 다 대다 필드 표시

내 모델 클래스의 인스턴스이기 때문에 맞습니다. 그런데 어떻게 그 모델의 단일 필드 값만 표시 할 수 있습니까? 나는 그걸하는 법을 정말로 모른다. 이러한 종류의 "양식 필드"에 대한 매개 변수가 관리 인터페이스에 있습니까? 나는 아무것도 찾을 수 없다. 나는 sombody가 해결책을 알고 있기를 바랍니다.

도움 주셔서 감사합니다.

+3

는 당신은'모델에 정의 된 __unicode__'가 있습니까), 나를 위해 작동하지 않았다, 그러나

def __str__(self): return self.name 

는 괜찮 았는데? – karthikr

답변

5

모델에 __unicode__ 메서드를 정의해야합니다. 난 내 자신의 이름 지정 규칙을 따라야 수 있어요 응용 프로그램, 나는 내 모든 모델의 기본 클래스에 다음을 넣어 무시할 수있는 적절한 :

class MyModel(db.Model): 
    """ Base class provides the __repr__ so that each model has short type. """ 
    __abstract__ = True 

    def __unicode__(self): 
     # attrs = db.class_mapper(self.__class__).column_attrs 
     attrs = db.class_mapper(self.__class__).attrs # show also relationships 
     if 'name' in attrs: 
      return self.name 
     elif 'code' in attrs: 
      return self.code 
     else: 
      return "<%s(%s)>" % (self.__class__.__name__, 
       ', '.join('%s=%r' % (k.key, getattr(self, k.key)) 
        for k in sorted(attrs) 
        ) 
       ) 
+1

+1'object .__ class __.__ name__' – Jivan

6

이 대답에 나 같은 사람들이 우연히 발견을이 추가

+0

파이썬 3을 사용하고 있기 때문에 upvoted. –

+0

은 unicode()를 제거한 python 3에서 완벽하게 작동합니다. –

+0

이것은 파이썬 3에서 완벽하게 작동합니다. 감사합니다. –