Django - Wie man ein Formular für ein Modell ist Fremdschlüssel?

Hier ist, was ich versuche zu tun. Ich Frage mich, ob jemand vorschlagen kann, ist ein guter Ansatz:

models.py:

class Color(models.Model):
    name = models.CharField(...

class Speed(models.Model):
    name = models.CharField(...

class Dog(models.Model):
    name = models.CharField(...
    color = models.ForeignKey(Color...
    speed = models.ForeignKey(Speed...

class DogRequest(models.Model):
    dog = models.ForeignKey(Dog...
    request_time = models.DateTimeField()

Nun möchte ich eine Seite haben, wo ein Benutzer eingeben kann, oder Bearbeiten ein DogRequest, aber die form sollte wie folgt Aussehen:

Enter Dog Request:
---------------------
color (dropdown V)
speed (dropdown V)
|save|

Also wie würde ich das design, die form in den Blick? Das problem ist, der Benutzer die Eingabe von Eigenschaften eines Hundes, aber nicht ein Hund. Also muss ich suchen oder erstellen Sie einen Hund aufnehmen je nach dem was der Benutzer eingibt.

Bisher habe ich versucht, so etwas wie dieses:

class DogRequestForm(ModelForm):
    class Meta:
        model = DogRequest
        fields = ('request_time','color','speed')
    color = forms.ModelChoiceField(queryset=Color.objects.all())
    speed = forms.ModelChoiceField(queryset=Speed.objects.all())

Davon aus, dass auch funktioniert, wo muss ich den code herauszufinden, den Hund aufnehmen zu verwenden (oder anlegen), je nachdem, was eingegeben für Farbe und Geschwindigkeit? Und wie fülle ich das Formular aus einem DogRequest?

InformationsquelleAutor Greg | 2011-04-19

Schreibe einen Kommentar