Django查看统计信息

时间:2018-04-13 11:51:41

标签: django

我目前在创建应用的统计概览时遇到问题。该应用程序包含geodjango multipoligon模型(区域),其他模型(酒店,咖啡馆,博物馆等)参考其位置:

class Area(models.Model):
    area_name = models.CharField(max_length=100,  null=True,  blank=True)
    mpoly = models.MultiPolygonField(srid=4326,  null=True,  blank=True)

class Hotel/Restaurant/Museum/Traffic_Incident(models.Model):
    area = models.ForeignKey(Area)

是否可以在django中创建一个视图,我可以在该区域中显示区域内的各种位置(区域模型)?由于特定原因,我不想将其他模型混合在一起。 我正在寻找的是一种创建地图的方法,其中包含地图上的所有对象以及该区域中哪些类型的场所的统计数据。我可以毫不费力地创建一个地图并将geojson数据传递给django-leaflet,但我正在努力创建一个包含该区域实际位置统计数据的表。

我可以通过创建统计模型来制作这样的东西,但我不愿意这样做,因为数据是动态的,我不想创建一个简单的统计计数器,尽管我可能不得不这样做只是如果没有其他选择。

1 个答案:

答案 0 :(得分:2)

我最终创建了一个自定义表单:

class MyCustomForm(forms.Form):
restaurants = forms.IntegerField(label="Restaurants in the area")

然后通过views.py

为表单赋值
class AreaView(MultiFormsView):
    template_name = 'area/area_view.html'
    form_classes = {'area':MyCustomForm,
## some other logic here,
}   
    def get_success_url(self):
        ##some logic

    def get_area_form_initial(self):
        area = get_object_or_404(Area, pk=self.kwargs['pk'])
        restaurants = Restaurants.objects.filter(area=area.pk).count()
## somelogic
        return {'restaurants': restaurants, 
}

    def get_context_data(self, **kwargs):
        context = super(AreaView, self).get_context_data(**kwargs)
        return context