繁体   English   中英

无法使用Django发布特定xml格式的表单数据

[英]Can not post form data in a specific xml format using Django

我需要一个帮助。 我需要使用Django将所有数据保存为特定的xml格式。 我在下面解释我的代码。

bmr.html:

<form method="post" action=" ">
    {% csrf_token %}
    <label>location name: </label>
    <input name="lname">
    <br>
    <label>Room name: </label>
    <input name="rname">
    <br>
    <label>No of Seats: </label>
    <input type="number" name="seat">
    <br>
    <label>Projector Screen</label>
    <select name="projector">
      <option value="Yes">Yes</option>
      <option value="No">No</option>
    </select>
    <br>
    <label>Video conference</label>
    <select name="video">
      <option value="Yes">Yes</option>
      <option value="No">No</option>
    </select>
    <br>
    <input type="submit" value="Submit">
</form>

views.py:

from __future__ import unicode_literals
from django.shortcuts import render, redirect
from django.contrib.auth import get_user_model, login, logout
from django.contrib.auth.decorators import login_required
from django.views import View
from django.contrib.auth.forms import (UserCreationForm, AuthenticationForm)
import xml.etree.cElementTree as ET
def bmr(request):
    root = ET.Element("roomlist")
    ET.SubElement(roomlist, "location name", name="blah").text = "some value1"
    doc = ET.SubElement(root, "location")
    return render(request,'booking/bmr.html',{})

在这里,我需要用户单击submit按钮时,帖子数据将保存为以下xml格式。 我在下面解释我的格式。

<roomlist>
  <location name="Bangalore">
    <room id="1uy92j908u092">
      <roomname> Aquarius </roomname>
      <noseats> 10 </noseats>
      <projectorscreen>yes</projectorscreen>
      <videoconf>yes</videoconf>
    </room>
  </location>
  <location name="Sydney">
    <room id="324det56yuygttrgr">
      <roomname> Capricorn </roomname>
      <noseats> 5 </noseats>
      <projectorscreen>no</projectorscreen>
      <videoconf>yes</videoconf>
    </room>
  </location>
</roomlist>

保存到xml文件后,它还应该以表格结构形式显示在表单的下面。 请帮我。

在您的模板中

<form method="post" action="{% url 'for_the_view' %}">

在你看来

def bmr(request):
    location_name = request.POST.get('lname') //same for other fields
    root = ET.Element("roomlist")
    ET.SubElement(roomlist, "location name", name="blah").text = location_name // sane for other fields
    tree = ET.ElementTree(root)
    tree.write("filename.xml")
    return render(request,'booking/bmr.html',{})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM