0

私のアプリでは、xml 解析と呼ばれる関数を含めています。xml ファイルからデータを取得し、それを mysql データベースに保存しようとしています。

Google エンジンの助けを借りてこれをコーディングしましたが、必要に応じてデータがデータベースに保存されていません。エラーなしでアプリを実行できます。

以下の私のコードを見てください

ビュー.py

def goodsdetails(request):
    path = "{0}shop.xml".format(settings.PROJECT_ROOT)
    xmlDoc = open(path, 'r')
    xmlDocData = xmlDoc.read()
    xmlDocTree = etree.XML(xmlDocData)

    for items in xmlDocTree.iter('item'):
        item_id = items[0].text
    customername = items[1].text
        itemname = items[2].text
        location = items[3].text
        rate = items[4].text        
        shop=Shop.objects.create(item_id=item_id,customername=customername,
            itemname=itemname,location=location,rate=rate)
        shop.save()


shops = Shop.objects.all()
    context={'shops':shops}
    return render(request,'index.html', context)

上記のロジックを使用して、xml ファイルからデータベースにデータを保存しています。エラーは発生していませんが、データベースに保存されていません。

期待される回答は大歓迎です。

*更新: * コードを更新しました。実際には xml データは db に保存されますが、同じデータを表示しているときに、次のトレースバックが表示されます

IntegrityError at /
(1062, "Duplicate entry '101' for key 'PRIMARY'")

ありがとう

4

1 に答える 1

0

Shop.objects.get データベースからデータをロードします。データを作成したい場合は、Shop(item_id=item_id,customername=customername, itemname=itemname,location=location,rate=rate)とを呼び出すだけですshop.save()

データを更新する場合は、次のようにする必要があります。

shop = Shop.objects.get(tem_id=item_id)
shop.customername = customername
...etc...
shop.save()
于 2013-04-05T06:04:53.830 に答える