2017-06-15 20 views
0

問題があります。すべての投稿データをxmlファイルに追加しようとしていますが、常に上書きします。私は以下のコードを説明しています。ユーザーはそのすべてのtime.Pleaseが私を助けて上書きすると、この問題を解決するために、すべてのデータは、既存のXMLファイルになく、私の場合には追加されますフォームを提出する際にDjangoとPythonを使用してxmlファイルにデータを追加できません

def some(request): 
    if request.method == 'POST': 
     location_name = request.POST.get('lname') 
     rname = request.POST.get('rname') 
     seat = request.POST.get('seat') 
     projector = request.POST.get('projector') 
     video = request.POST.get('video') 
     root = ET.Element("roomlist") 
     doc = ET.SubElement(root, "locationname", name=location_name) 
     doc1 = ET.SubElement(doc, "roomid", name="1234") 
     ET.SubElement(doc1, "roomname", name=rname).text = rname 
     ET.SubElement(doc1, "noseats", name=seat).text = seat 
     ET.SubElement(doc1, "projectorscreen", name=projector).text = projector 
     ET.SubElement(doc1, "videoconf", name=video).text = video 
     tree = ET.ElementTree(root) 
     tree.write("filename.xml") 
    return render(request, 'booking/bmr.html', {}) 

は、ここで私が必要です。

答えて

0

、あなたのデータを作成し、ファイルに追加する必要があります。

root = tree.getroot()  
xmlstr = ET.tostring(root, 'utf-8', method='xml') 
with open("filename.xml", "a") as myfile: 
    myfile.write(xmlstr) 

だから私は木を作成する(あなたのコード)と文字列に変換(tostring())とだけファイルにこの文字列を追加している何をすべきか:)

+0

私はあなたのようにしましたが、この 'NameError at/some/ グローバル名 'ElementTree'が定義されていません 'エラーです。 – satya

+0

私はこの 'import xml.etree.cElementTreeをETとして使用しています – satya

+0

ですので、' ElementTree.tostring'の代わりに 'ET.fromstring'を使用します。 – MaximeK

関連する問題