没有出现Django crispy-forms的占位符文本

时间:2015-05-18 01:09:24

标签: django django-crispy-forms

目前尝试在django-crispy-forms中添加占位符文本(灰色),但无法显示。有任何想法吗?我尝试了几件事,但每次都无法在文本字段中产生任何输出。

from django import forms
from .models import TaskItem
from crispy_forms.bootstrap import AppendedText, PrependedText
from crispy_forms.helper import FormHelper
from crispy_forms.layout import Layout, ButtonHolder, Submit
from crispy_forms.layout import Field

class TaskItemForm(forms.ModelForm):
    # task is changed to taskn
    taskn = forms.CharField(max_length = 300)
    def __init__(self, *args, **kwargs):
        super(TaskItemForm, self).__init__(*args, **kwargs)
        self.fields['taskn'].label = False
        PrependedText('taskn', '@', placeholder="username")
        self.helper = FormHelper()
        self.helper.layout = Layout(
            'taskn',
            ButtonHolder(
                Submit('Submit', 'Submit', css_class='btn-primary' , css_id = "floater")
            ),
            Field(placeholder = 'test'
            )
        )

    # An inline class to provide additional information on the form.
    class Meta:
        fields = ('taskn',)
        #This is the association between the model and the model form
        model = TaskItem

1 个答案:

答案 0 :(得分:0)

您在PrependedText对象中没有Layout

from django import forms
from .models import TaskItem
from crispy_forms.bootstrap import AppendedText, PrependedText
from crispy_forms.helper import FormHelper
from crispy_forms.layout import Layout, ButtonHolder, Submit
from crispy_forms.layout import Field

class TaskItemForm(forms.ModelForm):
    class Meta:
        model = TaskItem
        fields = ('taskn',)

    def __init__(self, *args, **kwargs):
        super(TaskItemForm, self).__init__(*args, **kwargs)

        self.helper = FormHelper()
        self.helper.layout = Layout(
            PrependedText('taskn', '@', placeholder="username"),
            ButtonHolder(
                Submit(
                    'Submit', 
                    'Submit', 
                    css_class='btn-primary', 
                    css_id='floater',
                )
            ),
        )