Próbuję przyjąć chrupiące formy i bootstrap i wykorzystać jak najwięcej ich funkcjonalności, jak to możliwe, zamiast wymyślać coś w kółko.django formularze w formie chrupkiej formy
Czy istnieje sposób na zachowanie funkcjonalności formularzy inline przy użyciu chrupiących formularzy/bootstrap, takich jak formularze django-admin?
Oto przykład:
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)
wyświetli przyzwoitą formę:
Jak mogę iść o dodanie formularz, który zasadniczo reprezentuje ten model:
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')
Tak więc będzie projekt i nazwy/adresy URL i droga do reklamy d wiele, podobnie jak to samo robi się w django-admin, gdzie możesz dodać dodatkowe "wiersze" z danymi związanymi z twoim głównym modelem. Na poniższym ekranie możesz wypełnić dane dla obiektu "Pytanie", a poniżej możesz dodać dane dla obiektów QuestionOption - możesz kliknąć ikonę "+", aby dodać tyle pytań, ile chcesz.
Nie szukam sposobu na automatyczne wygenerowanie formularzy z modeli (to jest ładne, ale nie najważniejsze) - czy istnieje sposób na skonstruowanie formularza, który pozwoli Ci dodać "wiersze" danych, takich jak django-admin to robi?
To pytanie dotyczy bardziej dynamicznych przycisków "dodaj więcej": http://stackoverflow.com/questions/501719/dynamic-adding-a-forma-do-a-django-formset-w-ajax – publysher