Resize fields in Django Admin

后端 未结 14 2114
一生所求
一生所求 2020-12-22 15:12

Django tends to fill up horizontal space when adding or editing entries on the admin, but, in some cases, is a real waste of space, when, i.e., editing a date field, 8 chara

14条回答
  •  暗喜
    暗喜 (楼主)
    2020-12-22 15:57

    It's well described in Django FAQ:

    Q: How do I change the attributes for a widget on a field in my model?

    A: Override the formfield_for_dbfield in the ModelAdmin/StackedInline/TabularInline class

    class MyOtherModelInline(admin.StackedInline):
        model = MyOtherModel
        extra = 1
    
        def formfield_for_dbfield(self, db_field, **kwargs):
            # This method will turn all TextFields into giant TextFields
            if isinstance(db_field, models.TextField):
                return forms.CharField(widget=forms.Textarea(attrs={'cols': 130, 'rows':30, 'class': 'docx'}))
            return super(MyOtherModelInline, self).formfield_for_dbfield(db_field, **kwargs)
    

提交回复
热议问题