首页 > 解决方案 > 如何在 Django ModelForms 中编写占位符?

问题描述

是否可以将 Django Models 中的帮助文本转换为 ModelForms 中的占位符?

模型.py

class DietaryHabits(Patient):

    DIET_CHOICES = (('V', 'Veg'), ('N', 'NonVeg'),)
    diet_type = models.CharField(max_length=1, choices=DIET_CHOICES, default=False)
    breakfast = models.TextField(help_text='Describe your daily Breakfast')
    lunch = models.TextField(help_text='Describe your daily Lunch')
    dinner = models.TextField(help_text='Describe your daily Dinner')
    others = models.TextField(blank=True, help_text='Describe your other eating habits')
    fasting = models.CharField(max_length=5, blank=True)

forms.py-

class DietaryHabitsForm(forms.ModelForm):

    class Meta:
        model = DietaryHabits
        fields = ['diet_type', 'breakfast', 'lunch', 'dinner', 'others']
        widgets = {
            'diet_type': forms.RadioSelect,
        }

标签: pythondjangodjango-modelsdjango-formsdjango-templates

解决方案


查看小部件文档。在你的情况下,它看起来像,

class DietaryHabitsForm(forms.ModelForm):
    breakfast = forms.CharField(label='breakfast', widget=forms.TextInput(attrs={'placeholder': 'Describe your daily Breakfast'}))
    lunch = forms.CharField(label='lunch', widget=forms.TextInput(attrs={'placeholder': 'Describe your daily Lunch'}))
    dinner = forms.CharField(label='dinner', widget=forms.TextInput(attrs={'placeholder': 'Describe your daily Dinner'}))
    others = forms.CharField(label='others', widget=forms.TextInput(attrs={'placeholder': 'Describe your other eating habits'}))

    class Meta:
        model = DietaryHabits
        fields = ['diet_type', 'breakfast', 'lunch', 'dinner', 'others']
        widgets = {
            'diet_type': forms.RadioSelect,
        }

或者你也可以填写小部件Meta

class DietaryHabitsForm(forms.ModelForm):

    class Meta:
        model = DietaryHabits
        fields = ['diet_type', 'breakfast', 'lunch', 'dinner', 'others']
        widgets = {
            'diet_type': forms.RadioSelect,
            'breakfast': forms.TextInput(attrs={'placeholder': 'Describe your daily Breakfast'}),
            'lunch': forms.TextInput(attrs={'placeholder': 'Describe your daily Lunch'}),
            'dinner': forms.TextInput(attrs={'placeholder': 'Describe your daily Dinner'}),
            'others': forms.TextInput(attrs={'placeholder': 'Describe your other eating habits'}),
        }

推荐阅读