Search code examples
djangodjango-fixtures

Creating fixture from json file in django


I'm having problems loading my fixture in Django 2.2

I have a file called data.json in my fixtures folder like this:

[{"model": "Headline", "pk": 1, "fields": {"article_link": "https://www.huffingtonpost.com/entry/versace-black-code_us_5861fbefe4b0de3a08f600d5", "headline": "former versace store clerk sues over secret 'black code' for minority shoppers", "is_sarcastic": 0}}, {"model": "Headline", "pk": 2, "fields": {"article_link": "https://www.huffingtonpost.com/entry/roseanne-revival-review_us_5ab3a497e4b054d118e04365", "headline": "the 'roseanne' revival catches up to our thorny political mood, for better and worse", "is_sarcastic": 0}}, {"model": "Headline", "pk": 3, "fields": {"article_link": "https://local.theonion.com/mom-starting-to-fear-son-s-web-series-closest-thing-she-1819576697", "headline": "mom starting to fear son's web series closest thing she will have to grandchild", "is_sarcastic": 1}}]

I have this model:

from django.db import models

class Headline(models.Model):
    article_link = models.CharField(max_length=250)
    headline = models.CharField(max_length=500)
    is_sarcastic = models.IntegerField()

I keep getting this error and not sure what is wrong?

django.core.serializers.base.DeserializationError:

Solution

  • Your fixture should look like this:

    [
      {
        "model": "myapp.headline",
        "pk": 1,
        "fields": {
          "article_link": "https://foobar.com",
          "headline": "Test",
          "is_sarcastic": 1
        }
      },
      {
        "model": "myapp.headline",
        "pk": 2,
        "fields": {
          "article_link": "https://foobar.com",
          "headline": "Test",
          "is_sarcastic": 1
        }
      }
    ]
    

    You can have a look here: https://docs.djangoproject.com/en/2.2/howto/initial-data/#providing-data-with-fixtures