【发布时间】:2017-03-24 15:24:43
【问题描述】:
鉴于下面的模型,我一直在试图弄清楚如何使用 Django REST 框架返回我想到的数据结构(也在下面)。
这将如何在序列化程序中完成,或者是否需要使用传统的 Django 样式查询在视图中构建这样的数据结构?
关于
基本上,创建一个词,用户提交该词的定义,并对每个定义进行投票(最有趣、最悲伤、wtf 等)
models.py
from django.db import models
class Word(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
word = models.CharField()
timestamp = models.DateTimeField()
class Definition(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
word = models.ForeignKey(Word, on_delete=models.CASCADE)
definition = models.CharField()
timestamp = models.DateTimeField()
class Vote_category(models.Model):
category = models.CharField()
class Vote_history(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
definition = models.ForeignKey(Definition, on_delete=models.CASCADE)
timestamp = models.DateTimeField()
vote = models.ForeignKey(Vote_category, on_delete=models.CASCADE)
预期的查询结果结构
word: 'hello',
definitions: [
{
user: 'alice',
definition: 'an expression of greeting',
votes: {
funny: 3,
sad: 1,
wtf: 7
},
votes_total: 11
},
etc...
]
谢谢!
【问题讨论】:
-
定义应该是
list而不是dict,不是吗? -
@Michael:很好。我更新了示例。
标签: python django django-rest-framework