如何从模型和ModelForm中获取textarea?

12 投票
3 回答
23347 浏览
提问于 2025-04-17 09:41

models.py=>

from django.db import models
from django.forms import ModelForm
from datetime import date
import datetime
from django import forms
from django.forms import Textarea

class Post(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()
    created = models.DateField(auto_now_add=True)
    modified = models.DateField(auto_now_add=True)

    def __unicode__(self):
        return self.title

class PostModelForm(ModelForm):
    class Meta:
        model = Post

但是我得到的是一个文本输入框,而不是文本区域,使用的是 models.TextField()。这是不是因为CSS的原因呢?

3 个回答

1

你现在使用的是模型,而不是表单,这就意味着你不能正确使用文本区域(textarea)。你可以试试使用文本字段(TextField):

field_name = models.TextField( **options)
11

这是对jcollardo解决方案的另一种写法(结果相同,但语法不同):

from django import forms

class PostModelForm(forms.ModelForm):
    content = forms.CharField(widget=forms.Textarea)
    class Meta:
        model = Post
22

我觉得文档中的这一部分应该能帮助你解决这个问题。

from django.forms import ModelForm, Textarea

class PostModelForm(ModelForm):
    class Meta:
        model = Post
        widgets = {
            'content': Textarea(attrs={'cols': 80, 'rows': 20}),
        }

撰写回答