formulários inline do crispy-formulários do django
Eu estou tentando adotar crispy-forms e bootstrap e usar o máximo de sua funcionalidade possível, em vez de inventar algo repetidamente.
Existe uma maneira de ter a funcionalidade de formulários in-line com formulários / bootstrap crocantes como os formulários django-admin?
Aqui está um exemplo:
class NewProjectForm(forms.Form):
name = forms.CharField(required=True, label=_(u'Название проекта'), widget=forms.TextInput(attrs={'class':'input-block-level'}))
group = forms.ModelChoiceField(required=False, queryset=Group.objects.all(), label=_(u'Группа проектов'), widget=forms.Select(attrs={'class':'input-block-level'}))
description = forms.CharField(required=False, label=_(u'Описание проекта'), widget=forms.Textarea(attrs={'class':'input-block-level'}))
class Meta:
model = Project
fields = ('name','description','group')
def __init__(self, *args, **kwargs):
self.helper = FormHelper()
self.helper.form_class = 'horizontal-form'
self.helper.form_action = 'submit_new_project'
self.helper.layout = Layout(
Field('name', css_class='input-block-level'),
Field('group', css_class='input-block-level'),
Field('description',css_class='input-block-level'),
)
self.helper.add_input(Submit('submit',_(u'Создать проект')))
self.helper.add_input(Submit('cancel',_(u'Я передумал')))
super(NewProjectForm, self).__init__(*args, **kwargs)
Ele exibirá uma forma decente:
Como faço para adicionar um formulário que basicamente represente este modelo:
class Link(models.Model):
name = models.CharField(max_length=255, blank=False, null=False, verbose_name=_(u'Название'))
url = models.URLField(blank=False, null=False, verbose_name=_(u'Ссылка'))
project = models.ForeignKey('Project')
Portanto, haverá um projeto e um nome / links de url e uma maneira de adicionar muitos, como a mesma coisa é feita no django-admin, onde você é capaz de adicionar 'linhas' extras com dados relacionados ao seu modelo principal. Na sreenshot abaixo você é capaz de preencher dados para o objeto 'Question' e abaixo disso você pode adicionar dados para objetos QuestionOption - você pode clicar no ícone '+' para adicionar quantas perguntas você quiser.
Eu não estou procurando uma maneira de obter os formulários gerados automaticamente a partir de modelos (isso é bom, mas não o mais importante) - existe uma maneira de construir um formulário que permite adicionar 'linhas' de dados como o django-admin faz? ?