【发布时间】:2014-07-20 19:00:39
【问题描述】:
我的model.py Transaction 和 Split 中有两个模型。一个事务可以有很多拆分,我试图让 django-rest-frameowrk 返回具有超链接关系的响应。
类似这样的事情:
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"desc": "House Rent",
"currency": "INR",
"amount": 5000.0,
"splits": [
'http://www.example.com/api/splits/45/',
'http://www.example.com/api/splits/46/',
'http://www.example.com/api/splits/47/',
]
}
]
}
但无论我在 TransactionSerializer 中为 splits 字段尝试哪个字段,我总是会得到一个响应链接:
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"desc": "House Rent",
"currency": "INR",
"amount": 5000.0,
"splits": [
1,
2
]
}
]
}
我写的模型和序列化器如下 型号:
class Transaction(models.Model):
desc = models.CharField(max_length=255)
currency = models.CharField(max_length=255)
amount = models.FloatField()
class Split(models.Model):
transaction = models.ForeignKey(Transaction, \
related_name='splits' )
userid = models.CharField(max_length=255)
split = models.IntegerField()
class Meta:
unique_together = ('transaction', 'userid')
序列化器:
class SplitSerializer(HyperlinkedModelSerializer):
class Meta:
model = Split
fields = ('transaction', 'userid', 'split')
class TransactionSerializer(serializers.ModelSerializer):
split = HyperlinkedRelatedField(many=True, \
view_name='split-detail')
class Meta:
model = Transaction
fields = ('desc', 'currency', 'amount', 'splits')
如果您需要项目的完整代码,请访问 github here
【问题讨论】:
标签: django django-rest-framework