2012-01-06 37 views
3

models.py =>如何從model + ModelForm中獲取textarea?

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的原因嗎?

回答

14

我覺得這個section在文檔中應該是有用的解決問題的。

from django.forms import ModelForm, Textarea 

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

這是models.CharField(),而不是forms.CharField(),發佈完整的例子可能會有幫助。 – shibly 2012-01-06 16:38:00

+0

對不起,我以前的回答假設你直接使用'forms'而不是'ModelForm'。新鏈接應提供您需要的信息。 – jcollado 2012-01-06 16:44:42

+0

我曾嘗試過,但沒有奏效,我沒有看到任何身高或體重的textarea。 – shibly 2012-01-06 17:13:21

3

替代jcollardo的解決方案(相同的結果,不同的語法):

from django import forms 

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

沒有'forms.TextField'。 – 2012-01-06 17:35:08

+0

哎呀,我總是把它們交叉。 – Tom 2012-01-06 19:27:04