Django - Как создать форму для внешних ключей модели?

Вот что я пытаюсь сделать. Мне интересно, может ли кто-нибудь предложить хороший подход:

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()

Теперь я хочу иметь страницу, на которой пользователь может вводить или редактировать DogRequest, но форма должно выглядеть так:

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

Итак, как мне создать эту форму в представлении? Проблема в том, что пользователь будет вводить свойства собаки, но не собаки. Поэтому мне нужно найти или создать запись о собаке, в зависимости от того, что вводит пользователь.

Пока что я пробовал что-то вроде этого:

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())

Теперь, предполагая, что это даже работает, где мне разместить код, чтобы выяснить, что такое собака. запись для использования (или создания) в зависимости от того, что введено для цвета и скорости? И как мне заполнить форму из DogRequest?

9
задан Greg 19 April 2011 в 17:35
поделиться