2012-01-05 3 views
8

db.define_table ('사람'필드 ('이름'), 형식 = '% (이름)의')표현 형식

무엇 이 형식이 여기 있습니까?

답변

10

format 인수는 '사람'테이블을 참조하는 다른 테이블의 필드를 표시하는 방법을 결정하는 데 사용됩니다. 예를 들어, 사용자가 정의하는 경우 :

db.define_table('dog', 
    Field('name'), 
    Field('owner', db.person) 

'소유자'필드 (즉, 그것은 '사람'테이블에서 레코드의 기록 아이디의 저장)에 '사람'테이블을 참조하는 참조 필드입니다. 대부분의 경우, 'dog'테이블의 데이터를 표시 할 때 'owner'필드에 저장된 원시 db.person 레코드 ID를 표시하지 않으려는 것은 의미가 없으므로 대신 ' 그 사람의 '이름'을 표시하는 것이 더 합리적입니다. web2py에서 테이블의 format 속성을 사용하면 양식과 테이블에서 자동 대체가 가능합니다.

'dog'테이블을 기반으로 SQLFORM을 만들면 'owner'테이블 정의에 대한 format='%(name)s' 인수 때문에 드롭 다운 목록이 자동으로 'owner'필드에 대한 드롭 다운 목록을 생성합니다. 다운 목록은 레코드 제출 대신 db.person 이름을 표시합니다 (양식 제출시 'owner'필드는 이름이 아닌 연관된 레코드 ID를 저장합니다).

또한 'dog'테이블의 레코드를 SQLTABLE 또는 SQLFORM.grid에 표시하면 '소유자'필드에 소유자의 레코드 ID가 아닌 소유자의 이름이 표시됩니다.

http://web2py.com/books/default/chapter/29/6#Record-representation을 참조하십시오.

+0

감사합니다. 여기서 이해할 수없는 것은 인수의 마지막에 ** ** ** ** ** ** ** 기호가 사용된다는 것입니다. – Jensen

+0

이것은 단지 표준 [Python 문자열 형식 표기법]입니다 (http://docs.python.org /library/stdtypes.html#string-formatting-operations). 'format' 문자열은 테이블 내의 모든 필드의 이름을 포함 할 수 있습니다. – Anthony

+0

고맙습니다. – Jensen