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 次  |  
        
|   最近记录:  |