2013-03-13 10 views
13

Mam kilka modeli z dużą liczbą inline. Ponieważ nie wszystkie są potrzebne dla każdego obiektu, który zadeklarowałem model wbudowany z extra = 0, tak aby mały add + pojawił się w linii.django 1.5 admin inline extra

Jednak to już nie działa w django 1.5. Jeśli ustawiono extra = 0, wbudowany nie jest już edytowalny.

Czy istnieje sposób na zachowanie 1.4 w wersji 1.5?

Przykład Kod:

class ModelInline(admin.StackedInline): 
    model = MyModel 
    extra = 0 

class OtherModelAdmin(admin.ModelAdmin) 
    inlines = [ModelInline] 

admin.site.register(OtherModel, OtherModelAdmin) 

edycji (kilka ekranów)

Django 1.4: django 1.4 extra=0

Django 1,5: enter image description here

(Hinzufügen ==) na

+0

Przykładowy kod byłby dobry do zobaczenia tutaj. –

+0

k, dodano przykładowy kod – Jannis

Odpowiedz

7

To już się dzieje wcześniej.

Istnieje łatka stworzona przez Gabrial Hurley w celu przywrócenia pożądanego zachowania bez niszczenia czegokolwiek innego. To jest 3 lata temu i nie wiem, czy nadal działa dla Django 1.5. Wystarczy spróbować :)

https://code.djangoproject.com/attachment/ticket/13023/13023_inlines_patch.diff

Oto bilet do tego samego błędu (3 lata temu):

https://code.djangoproject.com/ticket/13023

+0

Nie mogę zastosować tego w 1.6, ponieważ total_form_count nie jest już zdefiniowany w models.py, tylko w formsets.py, a kod jest inny, więc nie jestem pewien, co zmienić . Czy ktoś może pomóc? – smwilsonau

+0

@smwilsonau W Django 1.6, nazywa się 'initial_form_count' – catherine

+0

dzięki, znalazłem równoważne linie i zastosowałem łatkę, ale mój problem okazał się czymś innym ... – smwilsonau

2

wpadłem na tej samej kwestii, ponieważ miałem w statyczną zawartość administratora katalog, który był poza instalacją django. Skopiowanie statycznej zawartości Django 1.5 z django/contrib/admin/static/admin/js/do STATIC_ROOT/admin/js rozwiązało problem.

+1

To właściwie nie jest dobra rzecz. Kiedy w pewnym momencie uaktualnisz wersję django, napotkasz kłopoty, ponieważ nie zobaczysz nowej wersji tych statycznych plików (po prostu miałeś taki problem). Jeśli serwer treści statycznych we właściwy sposób (https://docs.djangoproject.com/en/dev/howto/static-files/) nie powinno być problemu – nivcaner

0

lepszym rozwiązaniem byłoby zastąpienie metody get_extra samej linii. Działa to w Django 1.9, ale nie mogę powiedzieć dla wcześniejszych wersji