- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个简单的表单类,其中定义了以下单个字段:
class LaunchForm(forms.Form):
file_name = forms.FileField(required=True, label='File to import')
在我的模板中我有:
<form action="" method="post">
{{ form.file_name }}
<table>
{{ form.as_table }}
</table>
{% csrf_token %}
<input type="submit" value="Submit">
</form>
表单正在从 View 中调用,如下所示:
class Application_Launch_View(View):
form_class = LaunchForm
template_name = 'application_launch.html'
def get(self, request, app_id):
form = self.form_class(application_id=app_id)
return render(request, self.template_name, {'form': form})
我将变量 {{ form.file_name }} 放入模板只是为了验证表单字段是否存在。在我的浏览器页面上显示的内容(以及模板中的所有其他内容)是:
<django.forms.fields.FileField object at 0x032A08F0>
但是 form.as_table 似乎没有产生任何结果。
我尝试在我的 View 中实例化表单后立即发出以下函数调用,就在调用 render() 函数之前:
打印(表格.文件名)打印(表格。as_table())
服务器日志显示:
<django.forms.fields.FileField object at 0x032A08F0>
后跟一个空格。如果我删除对 as_table() 的调用,则不会出现空格。我尝试在 View 中替换 form.as_p(),但得到了相同的结果,所以看起来这两种方法至少都输出了 CR 或 CR/FL 对。
看起来一切正常,除了 as_table() 和 as_p() 方法,我不明白为什么...
++++++++++++++++++++
在更深入地研究这个问题时,我注意到另一种形式,当从模板中引用表单上的 Django 字段对象时,不会产生我上面发布的对象类描述,而是预期的表单字段。
所以我不得不问,下面两种建立表单域的方法有什么区别,有没有办法使第二种方法(在__init__()
中)起作用?
方法 1(可行):
class LaunchForm:
file_name = forms.FileField(required=True,
label='File to import',
initial='Default value')
方法 2(这行不通):
class LaunchForm:
def __init__(self, *args, **kwargs)
self.file_name = forms.FileField(required=True,
label='File to import',
initial='Default value')
最佳答案
您似乎将表单类本身而不是它的实例传递给模板。你应该做这样的事情:
form = LaunchForm()
return render(request, 'my_template.html', {'form': form})
等等
编辑
要在 __init__
中动态添加一个字段,您需要将其分配给 self.fields
字典:
self.fields['file_name'] = forms.FileField(...)
关于python - Django 表单 as_table(), as_p() 方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22261110/
默认情况下_form.as._p吐出: Subject: 而我需要 Subject: 标签和输入之间有中断。我该如何修改Django代码? 最佳答案 您只是不能再使用form.a
具体返回什么 form.to_p? 我是说 这段代码: {% csrf_token %}
我调用表单集,但不使用 {{ formset.as_p }} 因为我想更改表单的显示。我知道使用 {{ formset.as_p }} 时可以实例化一个字段来直接编辑它。 但是这样使用表单集是否可能
我有一个通用 View 和一个表单模板。 我的看法是: class BlogCreateView(CreateView): model = Post template_name = "
我有一个简单的表单类,其中定义了以下单个字段: class LaunchForm(forms.Form): file_name = forms.FileField(required=True,
在我的第一个 Django 应用程序上工作,我有一个用一些 DateFields 定义的模型,然后是那个模型的 ModelForm 即 模型.py class MyModel(models.Model
我花了一些时间向带有提交按钮的输入字段添加一些 CSS。然而,我仍然只是在学习如何使用 django 表单,发现我必须在我的模板中使用“form.as_p”。结果,我失去了我想要的造型。存在哪些方法可
我是一名优秀的程序员,十分优秀!