相关疑难解决方法(0)

调整Django Admin中的字段大小

当在管理员上添加或编辑条目时,Django往往会填满水平空间,但在某些情况下,真正浪费空间,即编辑日期字段,8个字符宽,或CharField,也是6或8 chars wide,然后编辑框上升到15或20个字符.

如何告诉管理员文本框应该有多宽,或者TextField编辑框的高度?

python django django-models django-admin

103
推荐指数
9
解决办法
5万
查看次数

Django Admin:仅为一个模型字段使用自定义小部件

我的模型中有一个DateTimeField字段.我想将它显示为Django管理站点中的复选框小部件.为此,我创建了一个自定义表单小部件.但是,我不知道如何将此自定义窗口小部件用于此字段.

Django文档解释了如何使用自定义窗口小部件的所有特定类型的字段:

class StopAdmin(admin.ModelAdmin):
    formfield_overrides = {
        models.DateTimeField: {'widget': ApproveStopWidget }
    }
Run Code Online (Sandbox Code Playgroud)

但这并不够精细.我想只为一个字段更改它.

python django django-forms django-admin django-widget

58
推荐指数
4
解决办法
4万
查看次数

在django admin中控制TextArea小部件的大小

我设法TextArea用两种不同的方式覆盖django管理界面中Widget 的外观:

使用formfield_overrides

admin.py:

class RulesAdmin(admin.ModelAdmin):
formfield_overrides = {
    models.TextField: {'widget': Textarea(
                       attrs={'rows': 1,
                              'cols': 40})},
}

...
admin.site.register(Rules, RulesAdmin)
Run Code Online (Sandbox Code Playgroud)

这种方式有点过分,因为它会改变该模型的所有TextField.

使用自定义表单:

forms.py:

from django.forms import ModelForm, Textarea
from TimePortal.models import Rules


class RulesModelForm(ModelForm):
    class Meta:
        model = Rules
        widgets = {
            'parameters': Textarea(attrs={'cols': 30, 'rows': 1}),
   }
Run Code Online (Sandbox Code Playgroud)

admin.py

from AppName.forms import RulesModelForm

class RulesAdmin(admin.ModelAdmin):

    form = RulesModelForm
Run Code Online (Sandbox Code Playgroud)

这两种解决方案调整TextArea.但是,在两种解决方案中,文本区域的实际大小超过1行(实际上是2行).以下是呈现的HTML的外观:

    <div class="form-row field-parameters">
            <div>
                <label for="id_parameters" class="required">Parameters:</label>
                <textarea id="id_parameters" rows="1" cols="30" name="parameters">{}</textarea> …
Run Code Online (Sandbox Code Playgroud)

css python django django-admin

32
推荐指数
1
解决办法
2万
查看次数