我正在使用drf-nested-routers包构建嵌套API .
但是/domains/1/nameservers/
给了我所有的名字服务器,不仅仅是一个与域#1相关的名字服务器
我认为问题是我使用默认教程NameServerViewSet实现
class NameserverViewSet(viewsets.ModelViewSet):
queryset = Nameserver.objects.all()
serializer_class = NameserverSerializer
Run Code Online (Sandbox Code Playgroud)
请帮我正确编码.
以下是drf-nested-routers github页面的示例.
drf-nested-routers提供了嵌套路由器,可以在下面生成url模式
\ domain\< - 域名列表\域{pk}\< - 一个域名,来自{pk]
\ domain {domain_pk} \nameservers\< - 域的名称服务器
{domain_pk}\domain {domain_pk} \nameservers\{pk}\< - 来自{pk}的特定域名服务器,来自{domain_pk}的域名
这是一个例子:
# urls.py
from rest_framework_nested import routers
from views import DomainViewSet, NameserverViewSet
(...)
router = routers.SimpleRouter()
router.register(r'domains', DomainViewSet)
domains_router = routers.NestedSimpleRouter(router, r'domains', lookup='domain')
domains_router.register(r'nameservers', NameserverViewSet)
urlpatterns = patterns('',
url(r'^', include(router.urls)),
url(r'^', include(domains_router.urls)),
)
Run Code Online (Sandbox Code Playgroud) 目标是建立像http://rentheatmap.com/sanfrancisco.html这样的东西
我用ggmap得到了地图,并能够在它上面绘制点.
library('ggmap')
map <- get_map(location=c(lon=20.46667, lat=44.81667), zoom=12, maptype='roadmap', color='bw')
positions <- data.frame(lon=rnorm(100, mean=20.46667, sd=0.05), lat=rnorm(100, mean=44.81667, sd=0.05), price=rnorm(10, mean=1000, sd=300))
ggmap(map) + geom_point(data=positions, mapping=aes(lon, lat)) + stat_density2d(data=positions, mapping=aes(x=lon, y=lat, fill=..level..), geom="polygon", alpha=0.3)
Run Code Online (Sandbox Code Playgroud)
这是一个基于密度的漂亮图像.有没有人知道如何制作看起来相同的东西,但是使用position $ property来构建轮廓和比例?
我通过stackoverflow.com彻底查看并没有找到解决方案.
编辑1
positions$price_cuts <- cut(positions$price, breaks=5)
ggmap(map) + stat_density2d(data=positions, mapping=aes(x=lon, y=lat, fill=price_cuts), alpha=0.3, geom="polygon")
Run Code Online (Sandbox Code Playgroud)
五个独立的stat_density图中的结果:
编辑2(来自hrbrmstr)
positions <- data.frame(lon=rnorm(10000, mean=20.46667, sd=0.05), lat=rnorm(10000, mean=44.81667, sd=0.05), price=rnorm(10, mean=1000, sd=300))
positions$price <- ((20.46667 - positions$lon) ^ 2 + (44.81667 - positions$lat) ^ 2) …
Run Code Online (Sandbox Code Playgroud)