Checkbox für ManyToManyField in Django
Anstatt dieses Mehrfachauswahlfeld wollen wir in unserem Model Checkboxen haben.
Dann müssen wir in unserer admin.py folgendes hinzufügen.
Schon haben wir Checkboxen in unserer ChangeView, da aber das ganze noch nicht wirklich gut aussieht. Sollten wir noch ein bisschen Stylesheet hinzufügen. Mal angenommen unsere models.py sieht so aus.
from django.forms import CheckboxSelectMultiple
from django.db.models import ManyToManyField
...
class UserAdmin(admin.ModelAdmin):
#...
formfield_overrides = {
ManyToManyField:{'widget': CheckboxSelectMultiple}
}
#...
Dann müssen wir unser ManyToManyField eine css-class zuordnen. Dies funktioniert mit den fieldsets und eine css-Datei hinzufügen.
from django.db import models
class Group(models.Model):
#...
class User(models.Model):
#...
groups = models.ManyToManyField(Group)
#...
Die Datei sollte unterhalb von MEDIA_ROOT aus der settings.py liegen.
Dann können wir in der admin_users.css z.B. die häßlichen Punkte vor den Checkboxen entfernen.
from django.forms import CheckboxSelectMultiple
from django.db.models import ManyToManyField
...
class UserAdmin(admin.ModelAdmin):
#...
formfield_overrides = {
ManyToManyField:{'widget': CheckboxSelectMultiple}
}
#...
fieldsets =(
#...
('Groups', {'classes':('groupselect',), 'fields': ('groups',), }),
#...
)
class Media:
css = {'all':
('css/admin_user.css',),
}
So sieht das ganze dann in unserer Django-Verwaltung doch schon etwas besser aus, ihr könnt mit der css natürlich auch alles andere in dem UserModeldesigen..groupselect ul {list-style: none}
Die letzten Einträge
- HTML UTF-8 Kodierung Mo 5.08.13 17:51
- Syntax highlighting mit BeautifulSoup4 Di 2.07.13 17:04
- Git Repositorys verwalten mit Gitolite Do 15.03.12 17:56
- Website verfügbarkeit mit Nagios Sa 21.01.12 17:40
- Checkbox für ManyToManyField in Django Fr 14.10.11 15:57