Django管理中无法调整一个特定字段的大小



我正在重写Django管理中的字段,如下所示:

class MyPageAdmin(FlatPageAdmin):
def formfield_for_dbfield(self, db_field, **kwargs):
if db_field.name == 'url':
return db_field.formfield(widget=forms.TextInput(attrs={'size': 100}))
if db_field.name == 'title':
return db_field.formfield(widget=forms.TextInput(attrs={'size': 150}))
return super(MyPageAdmin, self).formfield_for_dbfield(db_field, **kwargs)
admin.site.unregister(FlatPage)
admin.site.register(MyPage, MyPageAdmin)

现在的问题是;标题";Django admin中的字段,字段宽度正如预期的那样发生了变化–size属性设置为150,但对于URL字段,现在绝对发生了变化。然而,代码确实会遇到特定的if语句,所以URL字段肯定存在,但就我而言,我不明白为什么只有这个字段不受覆盖的影响。其他字段没有遇到这个问题(除了"标题"字段之外,我还有其他重写,但只有URL保持其原始大小(。

我怀疑Django中应用的样式更改是否会传递到模板上。这里有三件事你可以尝试:

  1. attrs={'size': '100 !important'}CSS中的!important标记基本上意味着覆盖所有其他样式,无论它们是来自父样式还是子样式(但仍然记得加引号(,尽管我不确定这在Django中是否像在React中一样有效。

  2. 尝试将类名应用于分部,然后在模板中手动覆盖或通过另一个CSS文件覆盖。如果语法不允许传入非数字属性,这是第一种方法的替代方法。

  3. 如果以上所有方法都不起作用,我很抱歉,但您可能需要设计自己的模板。请通过此线程阅读更多关于自定义模板的信息。

如果你想知道第二个方法和第三个方法有何不同,第二个只是覆盖一些样式,第三个是替换整个模板。如果你赶时间的话,第三个肯定会起作用。

最新更新