Mam model, który wykorzystuje pole wybory Django coś takiego:wyliczanie modelowe wybory w serializatora Django Reszta ramowego
class Question(models.Model):
QUESTION_TYPES = (
(10,'Blurb'),
(20,'Group Header'),
(21,'Group Footer'),
(30,'Sub-Group Header'),
(31,'Sub-Group Footer'),
(50,'Save Button'),
(100,'Standard Question'),
(105,'Text-Area Question'),
(110,'Multiple-Choice Question'),
(120,'Standard Sub-Question'),
(130,'Multiple-Choice Sub-Question')
)
type = models.IntegerField(default=100,choices=QUESTION_TYPES)
Używam Django Framework Rest przedstawić ten model jako API do kątowym Aplikacja internetowa. W mojej aplikacji internetowej Angular chcę widżetu pole kombi, które spada z wszystkich tych wyborów. Nie liczby całkowite, ale wybór tekstu, np. "Blurb", "standardowe pytanie" i tak dalej.
Teraz mogę ręcznie zakodować pole kombi w aplikacji Angular, ale w duchu DRY możliwe jest napisanie serializatora DRF, który po prostu zwraca te wybory (np. Obiekt QUESTION_TYPES), więc mogę zapełnić pole kombi z zapytaniem ReST?
I przez "możliwe", myślę, że mam na myśli "prosty i elegancki". I może też mam na myśli "ReSTful". (Czy jest to W STANIE zrobić to w ten sposób?)
Po prostu zastanawiam się. . .
Dzięki
John
Expose ten model za pośrednictwem adresu URL. W swoim kontrolerze AngularJS wykonaj '$ http.get()', aby pobrać wszystkie wartości. Przyklej te wartości do zmiennej '$ scope' (nazwij ją' foo'). Następnie odwołaj się do 'foo' jako atrybutu' ng-options' twojego elementu '
Sposób w jaki przeczytałem twoją sugestię, to zwykłe wywołanie API, które zwróci wszystkie wiersze w tabeli, nieprawdaż? Nie chcę API, które zwraca wiersze tabeli - już to mam. Chcę API, które po prostu zwraca QUESTION_TYPES - 11 wierszy danych, nawet jeśli sama tabela modelu jest pusta. Nie mogę wiarygodnie zrekonstruować QUESTION_TYPES z wierszy tabeli, ponieważ nie mogą istnieć żadne wiersze tabeli danego typu. – John
Ah. Następnie możesz utworzyć model, który ma wszystkie wartości tego typu. –