【问题标题】:How to customize a specific TextField inside the Django admin not all?如何在 Django admin 中自定义特定的 TextField 不是全部?
【发布时间】:2017-02-22 15:07:15
【问题描述】:

我的模型中有两个TextField。但我只想更改TextField 的行和列属性。我从this 页面知道TextField 的外观可以使用admin.py 中的以下代码进行更改。

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

...
admin.site.register(Rules, RulesAdmin)

正如我所说,使用上面的代码改变了TextField 的外观,我只想改变其中一个是我的模型的外观:

class Post(models.Model):
    title = models.CharField(max_length=200)
    content = models.TextField()
    pub_date = models.DateTimeField(auto_now_add=True)
    update_date = models.DateTimeField(auto_now=True)
    meta = models.TextField(blank=True)

    def __str__(self):
        return self.title

我只想更改meta 字段的外观。

我该怎么办?

【问题讨论】:

  • link 将帮助您自定义TextField

标签: django django-models django-forms django-admin


【解决方案1】:

将以下代码添加到forms.py

from django.forms import ModelForm, Textarea
from .models import Lesson

class PostModelForm(ModelForm):

    class Meta:
        model = Lesson
        fields = ('__all__')
        widgets = {
            'meta': Textarea(attrs={'cols': 80, 'rows': 5}),
        }

admin.py 中这样做

class PostModel(admin.ModelAdmin):
    list_display = ('id', 'title', 'pub_date', 'course',)
    search_fields = ('title', 'course__alias',)

    form = PostModelForm

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-28
    • 1970-01-01
    • 1970-01-01
    • 2019-05-07
    • 2021-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多