Как добавить в db sql строки из xml документа на django?

У меня есть xml документ с чужого сайта и мне нужно обновить свою db Но я впервые имею дело с xml файлами и не знаю как с ними работать.

XML

<shop>
  <name>SHOP</name>
  <currencies>
    <currency id="RUB" rate="74.0000000000"/>
    <currency id="USD" rate="1.0000000000"/>
  </currencies>

  <categories>
    <category id="25" parentId="19">Одежды</category>
    <category id="28" parentId="19">Машины</category>
    <category id="29" parentId="19">Спорт</category>
  </categories>

  <offers>
    <offer available="true" group_id="1245" id="6549">
      <price>405</price>
      <old_price>675</old_price>
      <currencyId>USD</currencyId>
      <name>Платье красное</name>
      <description><![CDATA[<p>Стильное платье выполнено из натуральной ткани в яркой цветочной расцветке </p>]]></description>
      <categoryId>25</categoryId>
      <param name="Вид">Платья</param>
      <param name="Размер">XS</param>
    </offer>
  </offers>
</shop>

models.py

class Categorie(models.Model):
  name = models.CharField('categorie_name', max_length=50)
  
class Currency(models.Model):
  name = models.CharField('currency_name', max_length=3)
  price = models.IntegerField('currency_price')
  

  
class Param(models.Model):
  name = models.CharField('name', max_length=50)
  type = models.CharField('type', max_length=50)


class Offer(models.Model):
  price = models.IntegerField('offer_price')
  old_price = models.IntegerField('offer_old_price')
  
  currencyId = models.ForeignKey(Currency)
  categoryId = models.ForeignKey(Categorie)
  name = models.CharField('offer_name', max_length=50)
  description = models.CharField('offer_description', max_length=50)
  
  param = models.ManyToManyField(Param, blank=True)

Добавление строк в моем понимании

from models import *
from djxml import xmlmodels
xml = xmlmodels.open('test.xml')
categories = xml.get('shop/categories')
for x in categories:
  cat = Categorie(name=x.text(), id=x.attr('id'))
  cat.save()

нет ли каких то готовых модулей для django? может кто нибудь мне объяснить как это сделать дать примеры что бы я понимал как с этим работать


Ответы (0 шт):