Все,Джанго modelchoicefield несохранённых модели
Есть ли простой способ для меня, чтобы отобразить форму, которая использует modelchoicefield для моделей, которые еще должны быть сохранены?
class Foo(models.Model):
name = models.CharField(max_length=42)
class Bar(models.Model):
name = models.CharField(max_length=42)
foo = models.ForeignKey("Foo",blank=True,null=True)
class BarForm(ModelForm):
class Meta:
model = Bar
pass
def create_new_bar(request):
foos = [Foo(name='foo1'), Foo(name='foo2'), Foo(name='foo3')]
bar = Bar(name='bar',foo=foos[0])
form = BarForm(instance=bar)
return render_to_response('bar_template.html',{"form" : form},context_instance=RequestContext(request))
Но виджет «выбрать», который отображается в форме, содержит пустой контент. Предположительно, это связано с тем, что привязать набор запросов к ModelChoiceField, который используется BarK ForeignKey для Foo, нет. (Так как ничего в «foos» не было сохранено и поэтому не существует в базе данных).
Есть ли другой способ справиться с этим, помимо написания пользовательского поля формы/виджета?
Спасибо.
Да, я делаю что-то вроде этого. Я переопределяю поле формы с помощью ChoiceField в форме _init_fn формы. И я передаю набор вариантов конструктору поля. В методе сохранения формы я сохраню Foo, который соответствует выбранному элементу в поле выбора, а затем установите bar.foo на этот идентификатор. – trubliphone