Bar*_*nka 4 python django django-crispy-forms
创建带有 的表单时FormHelper(),我的表单的文本区域(对于TextFields)太大:它们设置为 10 行。我想设置行数。我怎样才能做到这一点?
我的代码:
models.py:from django.db import models
class Spam(models.Model).
ham = models.CharField(max_length=10, blank=True, null=False, default='Some ham')
eggs = models.TextField(blank=True, null=False, default='', verbose_name="Lots of eggs")
Run Code Online (Sandbox Code Playgroud)
forms.py:from django import forms
from crispy_forms.helper import FormHelper
from crispyy_forms.layout import (Layout, Row, Column)
from .models import Spam
class SpamForm(forms.ModelForm):
class Meta():
model = Spam
fields = ('ham', 'eggs')
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.helper = FormHelper()
self.helper.form_method = 'POST'
self.helper.layout = Layout(
Row(Column('ham', css_class='form-group col-12')),
Row(Column('eggs', css_class='form-group col-12')),
# HERE: How can I set the rows for the text area widget?
)
Run Code Online (Sandbox Code Playgroud)
from django.db import models
class Spam(models.Model).
ham = models.CharField(max_length=10, blank=True, null=False, default='Some ham')
eggs = models.TextField(blank=True, null=False, default='', verbose_name="Lots of eggs")
Run Code Online (Sandbox Code Playgroud)
TextArea您需要更改您的字段正在使用的小部件的属性eggs。
class SpamForm(forms.ModelForm):
# no changes here
def __init__(self, *args, **kwargs):
# No changes to your existing code, just add this:
self.fields['eggs'].widget.attrs = {'rows': 2}
Run Code Online (Sandbox Code Playgroud)
您可以通过传入行来直接使用脆皮形式“覆盖”行:
Row(Column('eggs', rows='2', css_class='form-group col-12')),
Run Code Online (Sandbox Code Playgroud)
或与字段:
Field('eggs', rows='2')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
570 次 |
| 最近记录: |