Python 如何将表单键/值连接到字符串并将其分配给Django变量?

Python 如何将表单键/值连接到字符串并将其分配给Django变量?,python,django,Python,Django,Django和python是web开发的新手 有一个带有文本框的评论页面,客户在其中写下他们对工厂参观的评论。单击“提交”后,将其作为文本文件发送给经理邮件 我的雇主希望它更像调查页面,所以他们要求将文本框输入更改为基于表单的输入,其中客户提供了多个标签和输入,如下所示。单击“提交”时,应创建包含以下信息的文本文件,并以邮件形式发送 Name : Phone : email : precaution and safety gears given: [yes/no] Unit 1 amb

Django和python是web开发的新手

有一个带有文本框的评论页面,客户在其中写下他们对工厂参观的评论。单击“提交”后,将其作为文本文件发送给经理邮件

我的雇主希望它更像调查页面,所以他们要求将文本框输入更改为基于表单的输入,其中客户提供了多个标签和输入,如下所示。单击“提交”时,应创建包含以下信息的文本文件,并以邮件形式发送

Name : 

Phone :

email :

precaution and safety gears given: [yes/no]

Unit 1 ambience: [Very satisfied/Satisfied/Neutral/Unsatisfied/Very unsatisfied]

Unit 2 ambience: [Very satisfied/Satisfied/Neutral/Unsatisfied/Very unsatisfied]

Unit 3 ambience: [Very satisfied/Satisfied/Neutral/Unsatisfied/Very unsatisfied]

General feedback : /text box for detailed review if any/
[]中给出的值是下拉值

我们的网站建立在Django框架之上。下面是审阅页面上使用的模板文件

{% extends 'page1.tmpl' %}
    <form id="reviewform" method="post" action="/sjfacweb/revfile/save">
        <pre><textarea name="review" id="review">{{ review }}</textarea></pre>
        <input class="button" type="submit" name="submit" value="Save" />
    </form>
{% endblock content %}
我认为django变量'review'捕获了客户键入的整个字符串,并将其保存为文件

假设模板如下所示

如何将表单中的所有标签/值转换为单个字符串并分配给django变量{{review}

谢谢


Mohan

在Django中,人们希望它能够完全使用来处理表单,因此最好在应用程序文件夹中创建一个forms.py文件,然后执行以下操作:

从django.forms导入表单 类审阅表单。表单: 注意事项(u选择) '不','不', “是的”,“是的” 单元1_选择= “非常满意”,“非常满意”, "满意","满意",, ‘中立’、‘中立’, “不满意”、“不满意”, “非常不满意”,“非常不满意”, name=forms.Charfield phone=forms.Charfield email=forms.EmailField 注意事项=表单。ChoiceFieldchoices=注意事项\u选项,小部件=表单。选择 unit1\u环境=表单。选择字段选择=unit1\u选项,小部件=表单。选择 review=forms.CharFieldwidget=forms.Textarea def cleanself: 检查每个字段是否可用后,然后将值相互关联 如果self.cleaned_数据中的“name”和self.cleaned_数据中的“phone”以及…: name=self.cleanned\u数据。获取'name' phone=self.cleanned\u数据。获取'phone' ... review=self.cleanned\u数据。获取“review” 应为\u string=name+'\n'+phone+…+回顾 使用review返回所有字符串,然后返回字符串 返回预期的\u字符串 然后在你的视图函数中做这样的事情

from.forms导入审阅表单 def revfile_保存请求: form=ReviewFormrequest.POST 如果form.u有效: review=form.U数据 您甚至可以创建def clean_nameself之类的方法 并检查输入是否为空,或在输入前对每个字段进行更多验证 调用Clean方法


请注意,使用django forms和ModelForms,您可以做更多的工作,因此最好阅读django中的文档,希望它能够完全处理表单,因此最好在应用程序文件夹中创建forms.py文件,然后执行以下操作:

从django.forms导入表单 类审阅表单。表单: 注意事项(u选择) '不','不', “是的”,“是的” 单元1_选择= “非常满意”,“非常满意”, "满意","满意",, ‘中立’、‘中立’, “不满意”、“不满意”, “非常不满意”,“非常不满意”, name=forms.Charfield phone=forms.Charfield email=forms.EmailField 注意事项=表单。ChoiceFieldchoices=注意事项\u选项,小部件=表单。选择 unit1\u环境=表单。选择字段选择=unit1\u选项,小部件=表单。选择 review=forms.CharFieldwidget=forms.Textarea def cleanself: 检查每个字段是否可用后,然后将值相互关联 如果self.cleaned_数据中的“name”和self.cleaned_数据中的“phone”以及…: name=self.cleanned\u数据。获取'name' phone=self.cleanned\u数据。获取'phone' ... review=self.cleanned\u数据。获取“review” 应为\u string=name+'\n'+phone+…+回顾 使用review返回所有字符串,然后返回字符串 返回预期的\u字符串 然后在你的视图函数中做这样的事情

from.forms导入审阅表单 def revfile_保存请求: form=ReviewFormrequest.POST 如果form.u有效: review=form.U数据 您甚至可以创建def clean_nameself之类的方法 并检查输入是否为空,或在输入前对每个字段进行更多验证 调用Clean方法

请注意,使用django表单和ModelForms可以做更多的工作,因此最好阅读文档

@require_POST
@csrf_protect
def revfile_save(request):
   """
   This page processes and saves review file.
   """
   review = request.POST.get('review', "").replace('\r\n','\n')
   reviewfile_name = "/root/sjfacweb/" + remote.sjfacweb()
   remote.write_reviewfile(reviewfile_name,False,review)
{% extends 'page1.tmpl' %}
    <form id="reviewform" method="post" action="/sjfacweb/revfile/save">
        Name: <input type="text" name="Name" value=""><br>
        Phone: <input type="text" name="Phone" value=""><br>
        email: <input type="email" name="email" value=""><br> 
        precaution and safety gears given: 
        <select>
            <option value="yes">yes</option>
            <option value="No">No</option>
        </select>
        <br>
        Unit 1 ambience:
        <select>
            <option value="Very Satisfied">Very Satisfied</option>
            <option value="Satisfied">Satisfied</option>
            <option value="neutral">neutral</option>
            <option value="Unsatisfied">Unsatisfied</option>
            <option value="Very Unsatisfied">Very Unsatisfied</option>
        </select>

        <pre><textarea name="review" id="review"></textarea></pre>
        <input class="button" type="submit" name="submit" value="Save" />
    </form>
{% endblock content %}