I have an admin form that is rather long (many models, over 150 fields). 
I use TabularInlines for most of these. I am unable to adjust width of 
various fields to reduce the overall width of the form. Since 
django-grappelli overrides widths specified in forms.py, the recommended 
way is to use css to adjust field width.

Something like this works for text fields
#member_set-group .grp-td.education_level .vTextField { width: 20em; }

And this for integer fields:
#member_set-group .grp-td.literacy_status .vIntegerField { width: 5em; }

I do not know what to use in place of .vTextField and .vIntegerField for 
fields that have a dropdown menu (either ChoiceFields, or dropdown menu 
coming from a ForeignKey relationship. For example, the 'sex' and 
'relationship' fields in the model below.

----------
class member(models.Model):
    sno = models.ForeignKey(Household)
    person_number = models.IntegerField()
    name = models.CharField(max_length=
150)
    sex_choices = (
        ('M','Male'),
        ('F','Female'),
        )
    sex = models.CharField(max_length=3,choices=sex_choices)
    age = models.CharField(max_length=30,blank=True)
    relationship = models.ForeignKey(CodeRelationship, blank=True, 
null=True, on_delete=models.SET_NULL)
    nearest_relative_member = models.IntegerField("Person number of nearest 
member relative", blank=True,null=True)
    nearest_relative_name_if_non_member = models.CharField("Name of nearest 
relative, if not a household member",max_length=4,blank=True)
    marital_status_choices = (
        (1, 'Single'),
        (2, 'Currently married'),
        (3, 'Divorced/separated'),
        (4, 'Widowed'),
        )
    marital_status = 
models.IntegerField(choices=marital_status_choices,blank=True)
    literacy_status = models.IntegerField(null=True, blank=True)
    education_level = models.CharField(max_length=150, blank=True)
    name_and_location_educational_institution = 
models.ForeignKey(CodeEducationInstitution, blank=True, null=True, 
on_delete=models.SET_NULL)
    comments = models.CharField(max_length=600, blank=True)

----------

I also tried assigning custom css classes to each of the widgets in 
forms.py as follows:

----------
class HouseholdMemberForm(forms.ModelForm):
  class Meta:
    widgets = { 'person_number': forms.TextInput(attrs={'class': 'wide5'})
                , 'name': forms.TextInput(attrs={'class': 'wide15'})
                , 'sex': forms.ChoiceField(attrs={'class': 'wide5'})
                , 'age': forms.TextInput(attrs={'class': 'wide5'})
                , 'nearest_relative_member': 
forms.TextInput(attrs={'class': 'wide5'})
                , 'nearest_relative_name_if_non_member': 
forms.TextInput(attrs={'class': 'wide5'})
                , 'marital_status': forms.TextInput(attrs={'class': 
'wide5'})
                , 'literacy_status': forms.TextInput(attrs={'class': 
'wide5'})
                , 'education_level': forms.TextInput(attrs={'class': 
'wide15'})
                , 'comments': forms.TextInput(attrs={'class': 'wide5'})
                }

---------

If I could set the width of all fields with css class wide5 to 5em, the job 
will become much simpler, since I would not need to specify width to each 
field individually.

But the following has no effect.

#member_set-group .wide5 { width: 35px;
                                              padding: 1px;      
                                              }

Would appreciate if somebody could guide me here.

VR

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/0a5b7df7-5410-4c8c-9e05-c1615dcca7b0%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to