Django Serializer的多个自然键

时间:2016-06-19 16:00:38

标签: python django

考虑一下我有他的模特:

class BankLoan(models.Model):
    amount=models.IntegerField()
    issued_to_account = models.ForeignKey(Account)
    issued_by = models.ForeignKey(BankOfficer)
    issue_date = models.DateField()

对于Django的序列化程序,看起来我只能有1 natural_key。但是,我的方案需要2个外键。有人可以为此提供帮助吗?

1 个答案:

答案 0 :(得分:0)

在提出这个问题时我犯了一个错误。

考虑我有一个BankLoan对象

class BankLoan(models.Model):
    amount=models.IntegerField()
    issued_to_account = models.ForeignKey(Account)
    issued_by = models.ForeignKey(BankOfficer)
    issue_date = models.DateField()

使用Django Serializer,我希望JSON输出为

{
'pk' : 1, 
'amount' : 100.00, 
'issued_to_account' : 'john.doe', 
'issued_by' : 'bank_teller_jane',
'issue_date' : '2016-06-20 12:00:00'
}

我应该依赖相关模型的natural_key方法,而不是专注于更改serializer上的内容。换句话说:

class Account(models.Model):
    def natural_key(self):
        return self.username

等等