Django Natural Key dla urządzeń Daj Deserialization Error
Widziałem kilka podobnych pytań na temat SO, ale żaden nie wydaje się odpowiadać na mój szczególny problem. Jestem nowym użytkownikiem Django i kierowałem się instrukcjamita strona aby pozwolić sobie na użycie naturalnych klawiszy do ładowania urządzeń. Niemniej jednak otrzymuję błędy Deserializacji, ponieważ Django chce liczby całkowitej dla klucza obcego i nie może wydawać się mapować mojego naturalnego klucza na klucz podstawowy liczby całkowitej, jak podano w instrukcjach. W szczególności moim odpowiednim kodem modeli jest:
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"),)
A moim urządzeniem YAML jest:
- 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
Ale kiedy próbuję uciekaćpython manage.py loaddata sample_data.yaml
, Pojawia się następujący błąd:
DeserializationError: [u"'['TimeSeries']' value must be an integer."]
Co ja robię źle?