Jestem nowy w piramidzie i staram się wprowadzić pewne zmiany w moim projekcie. Próbuję podzielić moje modele/klasy na pojedyncze pliki zamiast pojedynczego pliku models.py. W tym celu usunąłem stary models.py i utworzyłem folder modeli z plikiem __init__.py
wraz z jednym plikiem dla każdej klasy. W wersji __init__.py
zaimportowałem klasę za pomocą from .Foo import Foo
.Jak podzielić models.py na różne pliki dla różnych modeli w Pyramid?
Dzięki temu widoki działają poprawnie i mogą zainicjować obiekt.
Jednak uruchomienie skryptu initializedb nie tworzy nowych tabel, tak jak miało to miejsce, gdy wszystkie modele miałem w jednym modelu. Nie tworzy odpowiednich tabel, ale bezpośrednio próbuje je wstawić.
Czy ktoś może podać przykład piramidalnej struktury projektu, która ma modele w różnych plikach?
Dzięki za odpowiedź! Jestem ciekawy, dlaczego potrzebujemy tego samego obiektu Base we wszystkich modelach. Myślałem, że Base będzie jakimś statycznym/współdzielonym obiektem, który zbiera wszystkie metadane, niezależnie od tego, gdzie jest wywoływany. – KaranK
Nie potrzebujesz tej samej bazy ani metadanych, ale z pewnością pomaga to w utrzymaniu porządku. Każdy aparat bazy danych powinien mieć jeden obiekt metadanych, który opisuje schemat tego silnika. W pythonie moduły są wykonywane tylko wtedy, gdy je importujesz, więc po rozbiciu modelu .ps na wiele pojedynczych modułów, nie zostaną one pobrane, dopóki nie zostaną zaimportowane. –