AdminのTextFieldのtextareaを広げる

(Comments)

Djangoモデルで

from django.db import models

class Article(models.Model):
    text = models.TextField()

みたいになってる時、Django Admin の管理サイトを見ると、<textarea .... rows="10" ... みたいなHTMLが出力される。

この、rowsの値を変えたい時は、admin.pyで

# -*- coding: utf-8 -*-

from django.contrib import admin
from blog.models import Article, Category
from django.db import models

from django import forms
class AdminTextareaWidgetLarge(forms.Textarea):
    def __init__(self, attrs=None):
        final_attrs = {'class': 'vLargeTextField', 'rows': 40}
        if attrs is not None:
            final_attrs.update(attrs)
        super(AdminTextareaWidgetLarge, self).__init__(attrs=final_attrs)

class ArticleAdmin(admin.ModelAdmin):
    formfield_overrides = {
        models.TextField:{'widget': AdminTextareaWidgetLarge},
    }

admin.site.register(Article, ArticleAdmin)

こんな風にして、新しいWidgetを作って、 formfield_overrides に突っ込むといいんじゃないかな。

できれば、'rows': 40 だけをどこかに定義するだけで実現させたいが、やり方がわからなかった。

django.forms.widgets.Textarea を直接書き換えるって手も……ないな。

Currently unrated

Comments

Recent Tweets

  • ytyng

    ytyng @ytyng

    なおってた
    2 days, 12 hours ago

  • ytyng

    ytyng @ytyng

    vuetify って2になって、グリッドのタグ名がBootstrapと同じになったのね。v-flex と書かなくてよくなってた。良い。
    2 days, 13 hours ago

  • ytyng

    ytyng @ytyng

    YahooショッピングのAPI、応答を返さない状態じゃない? https://t.co/rYKTlr7RcU
    2 days, 16 hours ago

Recent Posts

Archive

2020
2019
2018
2017
2016
2015
2014
2013
2012
2011

Categories

Authors

Feeds

RSS / Atom