2012-01-06 3 views
3

models.py =>Как я могу получить текстовое поле из модели + ModelForm?

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

+0

Извините, мой предыдущий ответ предполагал, что вы использовали 'forms' непосредственно вместо' ModelForm'. Новая ссылка должна предоставить необходимую вам информацию. – jcollado

+0

Я пробовал это, но это не сработало, я не вижу высоты или веса для этого текстового поля. – shibly

3

Альтернатива jcollardo (в тот же результат, отличный синтаксис):

from django import forms 

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

Нет 'forms.TextField'. –

+0

Упс, я всегда скрещиваю их. Не полезно. – Tom

Смежные вопросы