2009-11-04 11 views
6

Mam klucze obce w moim modelu, które chciałbym użyć dla moich pól wyboru ... teraz nie jestem pewien, jak to zrobić ... mój plik modelu może można znaleźć here Zasadniczo chcę mieć pole wyboru dla marki pojazdu, modelu, roku, stylu nadwozia, koloru nadwozia i skrzyni biegów. Ponieważ wszyscy pracują w taki sam sposób, po prostu potrzebuję kogoś, kto wskaże mi właściwy kierunek, a potem wszystko gotowe.Wybierz pole ForeignKey w formularzu ChoiceField

class Model(models.Model): 
    model = models.CharField(max_length=15, blank=False) 
    manufacturer = models.ForeignKey(Manufacturer) 
    date_added = models.DateField() 
    def __unicode__(self): 
     name = ''+str(self.manufacturer)+" "+str(self.model) 
     return name 

class BodyStyle(models.Model): 
    doors = models.PositiveSmallIntegerField() 
    passengers = models.PositiveSmallIntegerField() 
    style = models.CharField(max_length=15, blank=False) 
    def __unicode__(self): 
     name = str(self.doors)+" Door/"+str(self.passengers)+" Passenger/"+str(self.style) 
     return name 

Odpowiedz

15

Być może szukasz ModelChoiceField?

Aby go użyć, by napisać coś takiego:

class VehicleForm(forms.Form): 
    series = ModelChoiceField(queryset=Series.objects.all()) # Or whatever query you'd like 

Następnie zrobić to samo dla innych dziedzin.

Oczywiście prawdopodobnie używałbyś ModelForm, ale to tylko przykład. Czy tego właśnie szukasz?

+0

Myślę, że to jest więcej tego, co chcę .... pozwól mi wypróbować za kilka minut, wtedy zobaczę, czy to działa. –

+0

to działa dobrze :) tylko jeden problem chociaż ... tam styl i model modelu nie zwraca tylko nazwy modelu, np. MDX w moim modelu unicode ... daje model make plus, więc to jest to, co dostaję w mojej formie, ale chcę tylko model. To samo dotyczy stylu ... zobacz moją edycję powyżej dla definicji modelu –

+0

Nie jestem pewien, czy w pełni rozumiem, co mówisz (jestem chory, więc moje postrzeganie jest wyłączone .. :)), ale myślę, że chcesz jest użycie 'label_from_instance', która pozwala modyfikować wyjście pola. Jeśli google to, powinieneś znaleźć kilka przykładów. – Bartek

Powiązane problemy