如何获取图表的数据和标签

时间:2017-04-12 04:23:31

标签: python django

我想以图表的形式表示我的数据, 但我在制作正确的查询以显示图表的标签和系列时遇到问题, 基本上我有一个Book模型和一个User模型 我想显示属于特定用户(标签)的书籍(系列)的数量。

models.by

class Book(models.Model):
    user = models.ForeignKey(User)
    name = models.CharField(max_length=200)

template_tag

@register.simple_tag()
def chart_data():
    users  =
    books = 
    return json.dumps({
        'labels':[user.username for user in users],
        'series':[[book.name for book in books]]
    })

3 个答案:

答案 0 :(得分:1)

这样的事情:

users = User.objects.all()
for user in users:
    books = Book.objects.filter(user=user)

答案 1 :(得分:0)

如果您想为特定用户执行此操作,请执行以下操作:

series = Books.objects.filter(user = "username").values("name")

这将生成一个查询集:

<queryset: [{name: book1}, {name: book2}, ...]>

您可以将其转换为列表,如下所示:

list(series)

然后通过json.dumps发送它..

在上述情况下,您已经知道这些图书所属的用户,但是如果您想通过查询指定它,那么:

series = Books.objects.filter(user = "username").values("name", "user__username")

这会产生这样的结果:

<queryset: [{name: book1, user: username1}, {name: book2, user: username1}, ...]>

答案 2 :(得分:0)

如果我理解正确,你需要一个json数据,它应该有一个标签代表用户名和系列代表该特定用户的book.name。

你试过了吗?

 books = Book.objects.values('user__username', 'name').order_by('user__username', 'name')