如何解决有什么方法可以将现有输入链接到Django表单?
在开发应用程序时,我最初开始通过QT(PySide2)开发UI,但是我暂停了它,以便通过Django在完整的“在线版本”上工作。
事实是我正在逐步学习/发现框架及其工作原理。
对于所有HTML,我都在Bootstrap Studio上构建了这些HTML,可以帮助我节省很多的时间,当然,这对我来说完全容易。
我当前的问题是,我只是发现输入/表单在Django中的工作方式并非如此(我个人认为!)。我的应用程序使用几种引导程序模式,以便添加/编辑“元素”,它们是我的应用程序的实例,将在数据库中进行写/读/编辑。
这里的问题是我已经创建了所有HTML页面和相关的引导程序模式,并且在Internet上找不到将现有的引导程序模式链接到Django表单的任何方法。
据我了解,Django表单“ caricaturaly”的工作方式如下:Django生成了一种必须动态集成到HTML中的表单。
事实是它并没有真正安排我,因为:
- 我已经有了引导程序模版,他们的输入看起来像我想要的
- 我真的不需要Django生成的外观不好的表单
- 我还有其他与表单无关的元素(进度条)
- 自从我是Web的初学者以来,我一无所知!
因此,我的主要问题是:是否有任何简单/可访问的方式来获取输入,就像通过QT一样,所以我的意思是:
- 打开模式
- 填充Input_1,Input_2,Input_3
- 通过任何方式在Django文件中获取这些输入,然后将它们(一个接一个地)保存在DB中
我的道歉在这里看起来真的很愚蠢,但是我真的是Django / Web的新手,我知道CSS / HTML语法,我对JavaScript不了解,我会说我的Python级别是中级(对于我所有的后背来说,最终用途)。
预先感谢您的帮助!
解决方法
使用表单进行验证/处理但不生成html的简单示例。
假设我们有这个现有表格
<form action="/some-url" method="POST">
<input id="foo" name="foo" type="text"/>
<input id="bar" name="bar" type="text"/>
<input id="baz" name="baz" type="text"/>
</form>
您可以使用以下Django形式表示它:
class MyForm(forms.Form):
# Field names should match the 'name' attributes in the html inputs
foo = forms.CharField()
bar = forms.CharField()
baz = forms.CharField()
并在这样的视图中使用它
def my_view(request):
if request.method == 'POST':
form = MyForm(request.POST)
if form.is_valid():
# Do stuff
return HttpRedirectResponse('/success')
# No need to pass the a form to the template,because we aren't
# using it to generate html.
return render(request,'view.html',{})
如果您想单独使用html表单中的字段,而根本不使用Django表单,请直接访问它:
some_val = request.POST['some_val']
(请注意,错误的布尔值和禁用的字段将不会出现在request.POST中)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。