【问题标题】:Overriding the default field type in Django覆盖 Django 中的默认字段类型
【发布时间】:2011-02-08 06:45:39
【问题描述】:

模型.py

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

我想将标题的长度设置为更长的宽度。我不确定如何操作小部件。有谁知道吗?

【问题讨论】:

    标签: python django django-forms


    【解决方案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 的底部。

    【讨论】:

      猜你喜欢
      • 2017-04-26
      • 1970-01-01
      • 2019-03-12
      • 1970-01-01
      • 2019-05-09
      • 2020-07-16
      • 2011-09-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多