user1532761
user1532761

Reputation: 39

Initial Data Django Fixtures Issue: Installed 0 object(s) from 0 fixture(s)

I am having a little trouble with importing initial data through xml files. For example I name this file in myapp/fixtures/initial_data.xml:

<?xml version="1.0" encoding="UTF-8"?>
<rows>
  <row>
    <model>myapp.nutrition</model>
    <name>Asiago Cheese Bagel</name>
    <calories>370</calories>
    <protein >17</protein >
    <carbs>56</carbs>
    <fats>8</fats>
    <restaurant >Au Bon Pain</restaurant >
    <price>1.29</price>
  </row>
</rows>

And this is what my model file looks like:

from django.db import models
class Nutrition(models.Model):
     name= models.CharField(max_length=100)
     calories= models.IntegerField()
     protein= models.IntegerField()
     carbs= models.IntegerField()
     fats= models.IntegerField()
     restaurant= models.CharField(max_length=100)
     price= models.DecimalField(decimal_places=2, max_digits=10)

When I run manage.py loaddata myapp/fixtures/initial_data.xml, I get: Installed 0 object(s) from 0 fixture(s). I have also tried JSON and got the same result. Any ideas?

Upvotes: 0

Views: 1497

Answers (1)

paulinus
paulinus

Reputation: 346

You should format the XML as Django expects it. One way to go is to manually add and object using Django's admin and then dump the data using

manage.py dumpdata --format=xml --indent=4

For your case, this gives something like

<?xml version="1.0" encoding="utf-8"?>
<django-objects version="1.0">
    <object pk="1" model="myapp.nutrition">
        <field type="CharField" name="name">Asiago Cheese Bagel</field>
        <field type="IntegerField" name="Calories">370</field>
        ...
    </object>
</django-objects>

Upvotes: 2

Related Questions