Opened 8 years ago
Closed 7 years ago
#29045 closed Bug (fixed)
admin CSS overrides Select/SelectMultiple size attribute
| Reported by: | Jonah Bishop | Owned by: | Jonah Bishop |
|---|---|---|---|
| Component: | contrib.admin | Version: | 1.11 |
| Severity: | Normal | Keywords: | |
| Cc: | elky | Triage Stage: | Accepted |
| Has patch: | yes | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description (last modified by )
I have an admin page set up for a model like so:
@admin.register(p_models.ScheduleType)
class ScheduleTypeAdmin(admin.ModelAdmin):
formfield_overrides = {
models.ManyToManyField: {'widget': forms.SelectMultiple(attrs={'size': '30'})},
}
list_display = ('name',)
The resulting ManyToMany field has the size attribute set properly, but every browser I try only shows about 8 rows (not 30, as I instructed). I've cleared cache, and tried in multiple browsers (Chrome 63, Firefox 57). My site uses Django 1.11.9.
It looks like the CSS style rules are overriding the size attribute. I'm guessing adding a height: auto; rule to the select[multiple] style set would fix it (it appears to do so in Chrome, at least).
Change History (5)
comment:1 by , 8 years ago
| Description: | modified (diff) |
|---|
comment:2 by , 8 years ago
| Cc: | added |
|---|---|
| Summary: | Multiple select widget does not honor size attribute → admin CSS overrides Select/SelectMultiple size attribute |
| Triage Stage: | Unreviewed → Accepted |
comment:3 by , 7 years ago
| Owner: | changed from to |
|---|---|
| Status: | new → assigned |
comment:4 by , 7 years ago
| Has patch: | set |
|---|
I've added a pull request (https://github.com/django/django/pull/10169) with a small patch to fix this issue. The fix was quite simple: a new "height: auto;" rule for the select[multiple] style case.