db.define_table ('osoba', Field ('nazwa'), format = '% (name) s')Format reprezentacja w bazie Web2py
Co czy ten format jest tutaj?
db.define_table ('osoba', Field ('nazwa'), format = '% (name) s')Format reprezentacja w bazie Web2py
Co czy ten format jest tutaj?
Argument format
służy do określenia sposobu wyświetlania pól w innych tabelach, które odwołują się do tabeli "osoby". Na przykład, jeśli określają:
db.define_table('dog',
Field('name'),
Field('owner', db.person)
„właściciel” jest polem odniesienia, który odwołuje się do tabeli „osoba” (to znaczy, przechowuje rekord identyfikatorów rekordów z tabeli „osoba”). W większości przypadków, gdy wyświetlasz dane z tabeli "pies", nie chcesz wyświetlać surowego identyfikatora rekordu db.person przechowywanego w polu "właściciel", ponieważ nie ma to żadnego znaczenia - zamiast tego bardziej sensowne jest wyświetlanie "nazwiska" osoby. W web2py atrybut format
tabeli umożliwia automatyczne podstawianie zarówno w formularzach, jak i tabelach.
Podczas tworzenia SQLFORM na podstawie tabeli "pies", automatycznie wygeneruje listę rozwijaną dla pola "właściciel", a z powodu argumentu format='%(name)s'
do definicji tabeli "osoby", na dole listy będą wyświetlane nazwy db.person zamiast identyfikatorów rekordów (nawet jeśli przy składaniu formularza pole "właściciel" będzie przechowywać powiązany identyfikator rekordu, a nie nazwę).
Ponadto, jeśli wyświetlasz rekordy z tabeli "pies" w SQLTABLE lub SQLFORM.grid, pole "właściciel" będzie wyświetlać nazwę właściciela, a nie identyfikator rekordu właściciela.
Zobacz http://web2py.com/books/default/chapter/29/6#Record-representation.
Dzięki. Czego tu nie rozumiem, to co robi ten symbol **% ** i ** s ** na końcu argumentu oznacza – Jensen
To tylko standardowa notacja formatowania ciągów Python (http://docs.python.org /library/stdtypes.html#string-formatowanie- operacje). Łańcuch 'format' może zawierać nazwy dowolnych pól w tabeli. – Anthony
Dziękuję bardzo. – Jensen