我从我的views.py文件中找到Django Chartit
的问题,因为他没有找到我的表。但是这个表格存在于我的MySQL Database
中。表不存在与Django Chartit原始查询
我使用这个模块为了在我的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
但它不起作用。
谢谢您提前
编辑:
我找到了另一种方式来让我的Django的聚合感谢查询@ e4c5和它的作品相当不错:
Person.objects.values('birthcountry').annotate(nombre = Count('birthcountry'))}
谢谢!你解决了我的问题,即使我得到另一个错误:'原始查询必须包含主键' – Deadpool