AdminのTextFieldのtextareaを広げる

(コメント)

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 を直接書き換えるって手も……ないな。

現在未評価

コメント

最近のツイート

  • ytyng

    ytyng @ytyng

    俺もスタバアプリにログインできないよ
    6 ヶ月, 2 週間 前

  • 安藤拓郎 Takuro Ando

    安藤拓郎 Takuro Ando @takuroando

    ytyng

    これまでいろんなグッズを作ってきたけど、今回は「お米」と聞いて買うしかないなと。今夜の夕食はコシヒカリ!箸もセットだし^^ https://t.co/01ucQx9qtw #腰乃展 #マンガ展 https://t.co/4VL2vOe0Og
    7 ヶ月 前

  • ytyng

    ytyng @ytyng

    講談社さんとやった全部入り電子書籍セットがギネスブックに登録されたよー https://t.co/rbkd3IYub0
    7 ヶ月 前