Django forms widgets Textarea直接设置为类型hidden但需要可见
Django forms widgets Textarea is directly set to type hidden but need it visible
我的问题是我从一个模型中设置了一个表单来更改这个模型的“描述”字段的值:
型号:
class Profile(models.Model):
user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
birth_date = models.DateField(null=True, blank=True)
profile_img = models.ForeignKey(Image,on_delete=models.CASCADE,related_name='images',null=True)
description = models.TextField()
表格:
class ChangeUserDescription(ModelForm):
class Meta:
model = Profile
fields = ['description']
widgets = {
'description': forms.Textarea()
}
labels = {
'description':'Description'
}
模板:
<form method="post">
{% csrf_token %}
{{ form }}
<button type="submit">Save changes</button>
</form>
但是在这段代码的结果中我得到了这个:
<input type="hidden" name="csrfmiddlewaretoken" value="brsd4oO0qhMw2K8PyCIgSgEMqy7QFvEjTHaR6wTJmyWffJaCX5XyOMDLrGldZ3ji">
<button type="submit">Save changes</button>
问题是我在输入中得到:type="hidden",而我希望它可见,但我没有在小部件中指定必须隐藏它。
您所指的隐藏输入字段如下:
<input type="hidden" name="csrfmiddlewaretoken" value="brsd4oO0qhMw2K8PyCIgSgEMqy7QFvEjTHaR6wTJmyWffJaCX5XyOMDLrGldZ3ji">
这是 Django 的 CSRF token,您已正确地将其包含在表单中,并且应始终为 <input type="hidden"
。
您没有向我们展示您的模板代码,但只要您正确地将 form
变量传递给您的模板,以下代码应该可以工作:
<form method="post">
{% csrf_token %}
Please enter your description here: {{ form.description }}
<button>Submit</button>
{% if not form %}
You have forgot to add the <tt>form</tt> variable to your template!
{% endif %}
</form>
我的问题是我从一个模型中设置了一个表单来更改这个模型的“描述”字段的值:
型号:
class Profile(models.Model):
user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
birth_date = models.DateField(null=True, blank=True)
profile_img = models.ForeignKey(Image,on_delete=models.CASCADE,related_name='images',null=True)
description = models.TextField()
表格:
class ChangeUserDescription(ModelForm):
class Meta:
model = Profile
fields = ['description']
widgets = {
'description': forms.Textarea()
}
labels = {
'description':'Description'
}
模板:
<form method="post">
{% csrf_token %}
{{ form }}
<button type="submit">Save changes</button>
</form>
但是在这段代码的结果中我得到了这个:
<input type="hidden" name="csrfmiddlewaretoken" value="brsd4oO0qhMw2K8PyCIgSgEMqy7QFvEjTHaR6wTJmyWffJaCX5XyOMDLrGldZ3ji">
<button type="submit">Save changes</button>
问题是我在输入中得到:type="hidden",而我希望它可见,但我没有在小部件中指定必须隐藏它。
您所指的隐藏输入字段如下:
<input type="hidden" name="csrfmiddlewaretoken" value="brsd4oO0qhMw2K8PyCIgSgEMqy7QFvEjTHaR6wTJmyWffJaCX5XyOMDLrGldZ3ji">
这是 Django 的 CSRF token,您已正确地将其包含在表单中,并且应始终为 <input type="hidden"
。
您没有向我们展示您的模板代码,但只要您正确地将 form
变量传递给您的模板,以下代码应该可以工作:
<form method="post">
{% csrf_token %}
Please enter your description here: {{ form.description }}
<button>Submit</button>
{% if not form %}
You have forgot to add the <tt>form</tt> variable to your template!
{% endif %}
</form>