Chcę użyć widżetu select2 dla manytomanyfield w django. Istnieje kilka modułów django/select2, ale dokumentacja jest myląca i nie mogę znaleźć prostego przykładu tego, czego chcę. Dzięki za pomoc.W django, jak korzystać z widgetu select2 dla wielutany?
Odpowiedz
Dobre miejsce na rozpoczęcie jest django-select2, mają również dobrą pracę example również.
Tutaj po prostu dowiedzieć się główny pomysł w kontekście ich przykładem
modelu
@python_2_unicode_compatible
class Album(models.Model):
title = models.CharField(max_length=255)
artist = models.ForeignKey(Artist)
featured_artists = models.ManyToManyField(Artist, blank=True, related_name='featured_album_set')
primary_genre = models.ForeignKey(Genre, blank=True, null=True, related_name='primary_album_set')
genres = models.ManyToManyField(Genre)
def __str__(self):
return self.title
Pola jakie są zostaną odwzorowane na Select2 przedstawiony tutaj z ManyToMany typu relacji.
forma
class AlbumSelect2WidgetForm(forms.ModelForm):
class Meta:
model = models.Album
fields = (
'artist',
'primary_genre',
)
widgets = {
'artist': Select2Widget,
'primary_genre': Select2Widget,
}
Jest bardzo łatwo dostosować Select2Widget, jeśli to będzie potrzebne.
A końcowy - HTML część
{% load staticfiles %}
<!DOCTYPE html>
<html>
<head>
{{ form.media.css }}
<style type="text/css">
select {
width: 200px;
}
</style>
</head>
<body>
<form method="post" action="">
{% csrf_token %}
{{ form }}
<input type="submit" value="Submit Form"/>
</form>
<script src="{% static '//code.jquery.com/jquery-2.1.4.min.js' %}"></script>
<script type="text/javascript">
window.onerror = function (msg) {
$("body").attr("JSError", msg);
}
</script>
{{ form.media.js }}
</body>
Dziękuję bardzo za twój przykład pracy. – Sardathrion
w Django> = 2,0,
atrybutów Nowe ModelAdmin.autocomplete_fields i ModelAdmin.get_autocomplete_fields() przy użyciu metody pozwalają Select2 przeszukiwania widget dla ForeignKey i ManyToManyField.
Źródło: https://docs.djangoproject.com/en/2.0/releases/2.0/#minor-features
- 1. Jak korzystać z widgetu karty w systemie Android?
- 2. Jak korzystać z CommaSeparatedIntegerField w django?
- 3. Określanie widgetu dla dodatkowego pola formularza modelu (Django)
- 4. Jak korzystać z grup i uprawnień Django?
- 5. Django 1.4 - assertQuerysetEqual - jak korzystać z metody
- 6. Jak korzystać z "odwrotności" relacji Django ManyToMany?
- 7. Jak korzystać z aplikacji Tivix django-cron
- 8. Select2 działa bardzo różnie z funkcją Uncaught query nie zdefiniowaną dla Select2 <select2-id>
- 9. Jak korzystać z aplikacji django-dyskusja?
- 10. Jak używać Select2 z Reactjs?
- 11. Jak korzystać z funkcji rejestrowania w pasku narzędzi Django?
- 12. Jak korzystać z sesji w TestCase w Django?
- 13. Jak korzystać z obrazów Matplotlib w szablonach Django?
- 14. Jak korzystać sentry/kruk w widokach django
- 15. Jak korzystać z metody filtra linebreaksbr w widoku Django?
- 16. Jak korzystać z różnych formularzy w Django-Registration
- 17. Jak korzystać z selektora kolorów HTML5 w administratorze Django
- 18. Jak ukryć przepełnienie w select2?
- 19. Aktualizacja widgetu Android z działania
- 20. Django: Jak sprawdzić, czy istnieją błędy w polu z niestandardowej definicji widgetu?
- 21. Zdarzenie kliknięcia przycisku dla widgetu Android
- 22. Listener dla widgetu ViewFlipper odwracającego zdarzenia
- 23. Jak korzystać z flake8 dla Python 3?
- 24. Jak korzystać z libcurl dla postu HTTP?
- 25. Jak korzystać z unique_ptr dla pimpl?
- 26. Jak korzystać z transakcji dla różnych kontekstów?
- 27. Obsługa Select2 z Selenium webdriverem
- 28. Jak korzystać z OR używając systemu filtrów modelu Django?
- 29. Jak uzyskać rozmiar widgetu aplikacji?
- 30. Jak używać niestandardowego filtru dla widgetu Yii2 ListView?
django-wybierz 2-formy robi to niezwykle proste. – user1993015