1

我有这个表格:


  <form method="POST" id="my_form" autocomplete="off"> {% csrf_token %}
    {% for field in form.visible_fields %}
    <div class="form-group">
        {{ field.label_tag }}
        {{ field }}
    </div>
    {% endfor %}
     <button type="submit" class="btn btn-primary">Submit</button>
  </form>

{{ field.label_tag }}呈现这个label

    <label for="id_name">Name:</label>

{{ field }}呈现此input字段:

    <input type="text" name="name" maxlength="20" required="" id="id_name">

不幸的是,没有占位符,所以我自己创建了它们:


$(".form-group").each(function(){
$('input[type="text"]').attr("placeholder", "placeholder");
});

占位符出现了,现在我想用数据库中的相应值填充它们。


例子:

class ModelA(models.Model):
    name = models.CharField(max_length=50,null=True,blank=True)

占位符 = 朱莉娅

这样做的最佳方法是什么?

谢谢

4

2 回答 2

0

如果您只想添加占位符,请尝试添加此代码

表单这是示例添加您的密钥作为示例,例如密码。

password = forms.CharField(label='password',widget=forms.PasswordInput((attrs={'placeholder': 'Password'})))

或试试这个。

class Meta:
        model = MyModel
widgets = {
            'name': forms.TextInput(attrs={'placeholder': 'Name'}),
            'description': forms.Textarea(
                attrs={'placeholder': 'Enter description here'}),
        }
于 2020-01-23T15:18:25.387 回答
0

如果您现在想要一个默认值而不是占位符,您可以使用default模型字段中的参数。

class ModelA(models.Model):
    name = models.CharField(max_length=50, null=True, blank=True, default='some_default')

然后我相信模型表单会自动将其作为相应字段的初始表单值。

于 2020-01-23T15:50:25.167 回答