2015-03-25 12 views
11

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

+1

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 '