2009-11-09 10 views

Odpowiedz

43

Z docs:

Aplikacja Django Admin definiuje szereg niestandardowych widgetów do kalendarzy, przefiltrowanych wyborów, i tak dalej. Te widgety definiują wymagania dotyczące multimediów, a administrator Django używa niestandardowych widgetów zamiast domyślnych ustawień Django. Szablony administracyjne będą zawierać tylko te pliki multimedialne, które są wymagane do renderowania widżetów na dowolnej stronie.

Jeśli podoba Ci się widżety, których używa aplikacja Django Admin, możesz użyć ich we własnej aplikacji! Wszystkie są przechowywane w pliku django.contrib.admin.widgets.

W takim przypadku potrzebujesz widgetu FilteredSelectMultiple. Aby z niego skorzystać, należy zastosować widget na polu formularza tak:

my_field = forms.ModelMultipleChoiceField(queryset=MyModel.objects.all(), widget=FilteredSelectMultiple("verbose name", is_stacked=False)) 

Upewnij się, że zawierają formularze media w szablonie, ponieważ musi zawierać kilka plików JS.

+0

Hrm ... nie chce pracować z jakiegoś powodu. Cały JS tam jest, ale z jakiegoś powodu nie konwertuje selektora. http://7src.com/~mnb2/a3/access – mpen

+0

Czy możesz wkleić kod do http://dpaste.com? – Bartek

+0

To jest dzikie domysły, ale spróbuj ustawić drugi argument (dla zmiennej 'is_stacked') na False. Patrząc na kod, wygląda na to, że może wpłynąć na wyświetlanie dwóch pól. Niestety nie mogę sam tego przetestować, więc przeglądam kod hehe :) – Bartek

Powiązane problemy