gpt4 book ai didi

python - Django Chartit 原始查询中不存在表

转载 作者:行者123 更新时间:2023-11-29 07:03:03 25 4
gpt4 key购买 nike

我在views.py 文件中遇到Django Chartit 问题,因为他找不到我的表格。但是这个表存在于我的 MySQL 数据库中。

我使用此模块是为了在我的 Django 网站中显示一些图形,这是我第一次使用它。

我的 Identity 应用程序中有一个名为 Person 的表,如下所示:

class Person(models.Model):

title = models.CharField(max_length=12,choices=TITLE_CHOICES, verbose_name='Civilité')
young_girl_lastname = models.CharField(max_length=30, verbose_name='Nom de jeune fille', blank=True)
lastname = models.CharField(max_length=30, verbose_name='Nom de famille')
firstname = models.CharField(max_length=30, verbose_name='Prénom(s)')
sex = models.CharField(max_length=8, choices=SEX_CHOICES, verbose_name='Sexe')
birthday = models.DateField(verbose_name='Date de naissance')
birthcity = models.CharField(max_length=30, verbose_name='Ville de naissance')
birthcountry = CountryField(blank_label='Sélectionner un pays', verbose_name='Pays de naissance')
.....

在我的 MySQL 数据库中,我有这个:

mysql> show tables ;
+-------------------------------------+
| Tables_in_DatasystemsEC |
+-------------------------------------+
| BirthCertificate_birthcertificate |
| Configurations_theme |
| Identity_monthlyweatherbycity |
| Identity_person |
| Mairie_mairie |
| Recensement_attestation_recensement |
| auth_group |
| auth_group_permissions |
| auth_permission |
| auth_user |
| auth_user_groups |
| auth_user_user_permissions |
| django_admin_log |
| django_content_type |
| django_migrations |
| django_session |
| log_userprofile |
+-------------------------------------+

您有 Identity_person 作为表格。

在我看来,我定义了一个新函数来显示一些统计图形:

def Chartview(request) :

#Step 1: Create a DataPool with the data we want to retrieve.
ds = \
DataPool(
series=
[{'options': {
'source': Person.objects.raw(
"SELECT birthcountry, COUNT(birthcountry) as nombre FROM Person GROUP BY birthcountry")
},
'terms': [
'birthcountry',
'nombre']}
])

#Step 2: Create the Chart object
cht = Chart(
datasource = ds,
series_options =
[{'options':{
'type': 'column',
'stacking': False},
'terms':{
'birthcountry': [
'nombre']
}}],
chart_options =
{'title': {
'text': 'Nombre de naissances par pays'},
'xAxis': {
'title': {
'text': 'Pays de naissance'}}})

return render(request, 'statistics.html',{'birthcountrychart': cht})

但我收到此错误:

(1146, "Table 'DatasystemsEC.Person' doesn't exist")

我不明白我必须替换什么:Person.objects.raw。我尝试了 Identity_person.objects.raw 但它不起作用。

提前谢谢您

编辑:

感谢@e4c5,我找到了另一种使用 Django Aggregation 进行查询的方法,并且效果非常好:

Person.objects.values('birthcountry').annotate(nombre = Count('birthcountry'))}

最佳答案

我认为你应该将 SQL 编写为:

'source': Person.objects.raw(
"SELECT birthcountry, COUNT(birthcountry) as nombre FROM Identity_person GROUP BY birthcountry")
},

关于python - Django Chartit 原始查询中不存在表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42691207/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com