Python 基于自然密钥错误的django序列化

Python 基于自然密钥错误的django序列化,python,django,Python,Django,我有一个django模型,使用自然关键点: class AcademicProgramsManager(models.Manager): def get_by_natural_key(self, acad_program_id, program_title, required_credits): return self.get(acad_program_id = acad_program_id, program_title = program_title, require

我有一个django模型,使用自然关键点:

class AcademicProgramsManager(models.Manager):
    def get_by_natural_key(self, acad_program_id, program_title, required_credits):
        return self.get(acad_program_id = acad_program_id, program_title = program_title, required_credits = required_credits)

class AcademicPrograms(models.Model):

    objects = AcademicProgramsManager()
    acad_program_id = models.IntegerField(primary_key=True)
    acad_program_category = models.ForeignKey(AcademicProgramCategories)
    acad_program_type = models.ForeignKey(AcademicProgramTypes)
    acad_program_code = models.CharField(max_length=25)
    program_title = models.CharField(max_length=64)
    required_credits = models.IntegerField()
    min_gpa = models.FloatField()
    description = models.CharField(max_length=1000)

    def natural_key(self):
    return (self.acad_program_id, self.program_title, self.required_credits)

class StudentAcademicPrograms(models.Model):
    student = models.ForeignKey(Students)
    academic_program = models.ForeignKey(AcademicPrograms)
    credits_completed = models.IntegerField()
    academic_program_gpa = models.FloatField()
    primary_program = models.BooleanField()

    def __str__(self):
    return self.credits_completed
当我试图用以下命令序列化
StudentAcademicPrograms
时,它抛出了一个错误

>>> with open("datafile.json","w") as out:...     
        serialize("json", StudentAcademicPrograms.objects.all(), indent=2, use_natural_foreign_keys=True, use_natural_primary_keys=True)
    ... 
    Traceback (most recent call last):
      File "<console>", line 2, in <module>
      File "/home/abhishek/projects/texascompletes/local/lib/python2.7/site-packages/django/core/serializers/__init__.py", line 122, in serialize
        s.serialize(queryset, **options)
      File "/home/abhishek/projects/texascompletes/local/lib/python2.7/site-packages/django/core/serializers/base.py", line 58, in serialize
        self.end_object(obj)
      File "/home/abhishek/projects/texascompletes/local/lib/python2.7/site-packages/django/core/serializers/json.py", line 52, in end_object
        cls=DjangoJSONEncoder, **self.json_kwargs)
      File "/usr/lib/python2.7/json/__init__.py", line 186, in dump
        default=default, sort_keys=sort_keys, **kw).iterencode(obj)
    TypeError: __init__() got an unexpected keyword argument 'use_natural_foreign_keys'
打开(“datafile.json”,“w”)作为输出:。。。 序列化(“json”,StudentAcademicPrograms.objects.all(),缩进=2,使用\u natural\u foreign\u keys=True,使用\u natural\u primary\u keys=True) ... 回溯(最近一次呼叫最后一次): 文件“”,第2行,在 文件“/home/abhishek/projects/texascompletes/local/lib/python2.7/site packages/django/core/serializers/_init__.py”,第122行,序列化 s、 序列化(查询集,**选项) 文件“/home/abhishek/projects/texascompletes/local/lib/python2.7/site packages/django/core/serializers/base.py”,第58行,序列化 self.end_对象(obj) 文件“/home/abhishek/projects/texascompletes/local/lib/python2.7/site packages/django/core/serializers/json.py”,第52行,在end_对象中 cls=DjangoJSONEncoder,**self.json_-kwargs) 文件“/usr/lib/python2.7/json/_init__.py”,第186行,在转储文件中 默认值=默认值,排序键=排序键,**kw)。iterencode(obj) TypeError:\uuuuu init\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu 我哪里出了问题?

根据Django 1.7版本中的
使用自然键
被“拆分”为
使用自然键
使用自然键
,目前该版本并不稳定


您可以使用或使用
使用自然密钥
关键字。

hmm。。我正在看开发版本的文档。