2011-02-08 4 views
0

models.pyПереопределение типа поля по умолчанию в Django

class Job(db.Model): 

title = db.StringProperty(verbose_name='Project Title:') 
description = db.StringProperty(multiline=True, verbose_name='Description:') 

created_at = db.DateTimeProperty(auto_now_add=True) 
updated_at = db.DateTimeProperty(auto_now=True) 
budget = db.IntegerProperty() 
max_project_duration = db.IntegerProperty() 

forms.py

class JobForm(djangoforms.ModelForm): 

def __init__ (self, *args, **kwargs): 
    super(JobForm, self).__init__(*args, **kwargs) 
    self.fields['description'].widget.attrs['rows'] = '2' 
    self.fields['description'].widget.attrs['cols'] = '70' 

class Meta: 
    model = Job 

Я хочу, чтобы установить длину заголовок на более ширину. Я не уверен, как манипулировать виджетами. Кто-нибудь знает?

ответ

1

Вот как я хотел бы сделать это в Django 1.2:

from django.forms import ModelForm 
from django.forms.widgets import Textarea, TextInput 

from my_project.models import Job 

class JobForm(ModelForm): 

    class Meta: 
     model = Job 
     widgets = { 
      'description': Textarea(attrs={'rows': '2', 'cols': '70}), 
      'title': TextInput(attrs={'size': '60'}), 
     } 

Это отражено в нижней части Widgets page in the Django docs.