你需要
natural_key
在模型中定义方法- 有
get_by_natural_key
方法的经理 - 实际附上经理(
objects=GraphManager()
)
在玩完您的代码后,我使它起作用:
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) objects = GraphTypeManager() def natural_key(self): return (self.type,) # must return a tupleclass 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) objects = GraphManager()
转储数据:
$ bin/django dumpdata index --indent=4 --natural > project/apps/fixtures_dev/initial_data.json[ { "pk": 1, "model": "index.graphtype", "fields": { "type": "asotuh" } }, { "pk": 1, "model": "index.graph", "fields": { "type": [ "asotuh" ], "name": "saoneuht" } }]bin/django loaddata project/apps/fixtures_dev/initial_data.json Installed 2 object(s) from 1 fixture(s)


