Postanowiłem przenieść część funkcji z mojej strony administratora do interfejsu. Funkcjonalność obejmuje administrowanie jednym modelem z pewnymi inlinami klucza obcego.Włączanie funkcji administratora Django w interfejsie z liniami
W tym celu zainstalowałem wtyczkę JJuery Django-dynamic-formset (link git) i już od kilku dni borykam się z nią. Oto jeden z problems.
Ta sama funkcja jest już zaimplementowana w administratorze Django. Mogę dodawać, modyfikować, usuwać inlines i modyfikować instancję modelu tak, jak chcę. Zastanawiam się, dlaczego powinienem używać tej wtyczki JQuery i dlaczego nie ma zbyt wielu dobrych samouczków na ten temat w Internecie?
Potrzebuję dobrego i niedawnego przykładu użycia formsenów django lub wbudowanych formularzy po stronie frontowej bez plików JS stron trzecich. Będę zadowolony, jeśli ma linki (nie pola wyboru), aby usunąć elementy wbudowane i dodać przycisk, który poprawnie doda nowy wbudowany.
Aby być bardziej konkretny, ponieważ kwestia została uznana za zbyt szeroki:
mam dwa modele szkolne i SchoolPlace:
class School(models.Model):
name = models.CharField(_('School name'), max_length=100)
class SchoolPlace(models.Model):
school = models.ForeignKey(School, verbose_name=_('school place'), related_name='school_places', blank=True, null=True)
name = models.CharField(_('School place name'), max_length=200)
city = models.ForeignKey(City, blank=True, null=True, verbose_name=_('city'),
help_text='city')
Istnieją również odpowiednie formy:
class SchoolForm(forms.ModelForm):
name = forms.CharField(
label=_('Name'),
widget=forms.TextInput(attrs={
'placeholder': _('school name')}),
max_length=100, required=True)
class SchoolPlaceForm(forms.ModelForm):
name = forms.CharField(label=_('Name'),
widget=forms.TextInput(
attrs={'placeholder': _('school place name')}),
max_length=200,
required=False)
city = forms.ModelChoiceField(label=_('City'),
widget=forms.Select(attrs={'class': 'ui search dropdown'}),
queryset=City.objects.all(), required=False)
class Meta:
model = SchoolPlace
fields = ['name','city']
exclude = ['school']
Chciałbym edytować te dwa modele w taki sam sposób, jak robi to administrator Django, ale tylko w moim własnym interfejsie. O ile wszystkie pliki js są już w django.contrib.admin, chciałbym to zrobić bez użycia aplikacji pobocznych i wtyczek.
Potrzebuję tej samej funkcjonalności co w administratorze Django: dodawaj, usuwaj, modyfikuj inline SchoolPlace. Oto zrzut ekranu:
Czy możesz podać przykład pracy? –