В моей модели есть родительский объект, каждый из которых может иметь ноль или более дочерних объектов, связанных внешним ключом.
Моя автоматически генерируемая ModelForm отлично работает для родительского объекта, но я бы хотел, чтобы пользовательчтобы иметь возможность создавать один или несколько дочерних объектов одновременно с созданием родительского.Обратите внимание, я не имею в виду выбор из уже существующих дочерних объектов - я имею в виду создание дочерних объектов с нуля ...
В настоящее время я использую много магии Джанго, чтобы форма появлялась с очень небольшимОбразец от меня: я понимаю, что, вероятно, придется изменить, чтобы сделать это!
Вот идея того, что у меня есть на данный момент:
# urls.py
(r'^create/$',
CreateAppView.as_view(
model=App,
template_name='edit.html')),
# edit.html
<form action="" method="post" enctype="multipart/form-data">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Submit" />
</form>
# model
class App(models.Model):
name = models.CharField(max_length=100)
class Activation(models.Model):
app = models.ForeignKey(App)
# view
class AppForm(ModelForm):
class Meta:
model = App
class CreateAppView(CreateView):
def post(self, request, *args, **kw):
form = AppForm(request.POST)
if form.is_valid():
app = form.save()
return HttpResponseRedirect(reverse('app_detail', args=(app.id,)))
else:
return super(CreateAppView, self).post(request, *args, **kw)