Django Natural Key for Fixtures geben Deserialisierungsfehler

Ich habe ein paar ähnliche Fragen zu SO gesehen, aber keine scheint mein spezielles Problem zu beantworten. Ich bin neu in Django und habe mich anhand der Anweisungen unter geführtdiese Seite um mir zu erlauben, natürliche Schlüssel zum Laden von Fixtures zu verwenden. Trotzdem erhalte ich Deserialisierungsfehler, weil Django eine Ganzzahl für einen Fremdschlüssel haben möchte und meinen natürlichen Schlüssel nicht einem ganzzahligen Primärschlüssel zuordnen kann, wie in den Anweisungen angegeben. Insbesondere ist mein relevanter Modellcode:

class GraphTypeManager(models.Manager):
    def get_by_natural_key(self, type):
        return self.get(type=type)
class GraphType(models.Model):
    type = models.CharField(max_length=100, unique=True)

class GraphManager(models.Manager):
    def get_by_natural_key(self, name):
        return self.get(name=name)
class Graph(models.Model):
    name = models.CharField(max_length=200, unique=True)
    type = models.ForeignKey(GraphType)

class LineManager(models.Manager):
    def get_by_natural_key(self, name):
        return self.get(name=name)
class Line(models.Model):
    name = models.CharField(max_length=200, unique=True)

class GraphToLineManager(models.Manager):
    def get_by_natural_key(self, line, graph):
        return self.get(line=line,graph=graph)
class GraphToLine(models.Model):
    line = models.ForeignKey(Line)
    graph = models.ForeignKey(Graph)
    class Meta:
        unique_together = (('line', "graph"),)

Und mein YAML Fixture ist:

- model: graphs_container.GraphType
  pk: null
  fields:
    type: TimeSeries
- model: graphs_container.Graph
  pk: null
  fields:
    name: LikesOverTime
    type: [TimeSeries]
- model: graphs_container.Graph
  pk: null
  fields:
    name: UsersOverTime
    type: [TimeSeries]
- model: graphs_container.Line
  pk: null
  fields:
    name: NumUsers
- model: graphs_container.Line
  pk: null
  fields:
    name: NumLikes

Aber beim Versuch zu rennenpython manage.py loaddata sample_data.yamlIch erhalte den folgenden Fehler:

DeserializationError: [u"'['TimeSeries']' value must be an integer."]

Was mache ich falsch?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage