Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django未序列化自然键值_Python_Django - Fatal编程技术网

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, required_cr

我有一个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)

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()
但是我的序列化程序仍然不输出外键的元素

[
{
  "pk": 1, 
  "model": "studentapp.studentacademicprograms", 
  "fields": {
    "academic_program": 124, 
    "credits_completed": 32, 
    "primary_program": true, 
    "student": 1206, 
    "academic_program_gpa": 3.7
  }
},
{
  "pk": 2, 
  "model": "studentapp.studentacademicprograms", 
  "fields": {
    "academic_program": 123, 
    "credits_completed": 32, 
    "primary_program": false, 
    "student": 1206, 
    "academic_program_gpa": 3.4
  }
}
]

我哪里出错了?

您需要在您的
程序
模型中添加
def natural_key(self)
方法。序列化时,还必须传递
use_natural\u foreign\u keys=True
use_natural\u primary\u keys=True
。有关示例,请参见