Вот что я пытаюсь сделать. Мне интересно, если кто-то может предложить хороший подход:
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())
Теперь, если предположить, что это даже работает, куда мне поместить код, чтобы выяснить, какую запись Dog использовать (или создать) в зависимости от того, что введено для цвета и скорости? И как мне заполнить форму из DogRequest?