代码之家  ›  专栏  ›  技术社区  ›  Eugene Goldberg

tastypie-如何设置授权以允许所有人进行PUT和POST

  •  0
  • Eugene Goldberg  · 技术社区  · 10 年前

    我正处于开发小型django/tastypie api的早期阶段。

    如何设置tastypie授权以允许所有人对资源执行PUT和POST?

    这是我的模型:

    class Workload(models.Model):
        name = models.CharField(max_length=120)
        description = models.TextField()
        image = models.CharField(max_length=120)
        flavor = models.CharField(max_length=120)
    
        class Meta:
            ordering = ["name", ]
    

    这是我的资源:

    class WorkloadResource(ModelResource):
        def obj_create(self, bundle, request=None, **kwargs):
            return super(WorkloadResource, self).obj_create(bundle, request)
    
        def obj_update(self, bundle, request=None, **kwargs):
    
            workload = Workload.objects.get(id=kwargs.get("pk"))
            workload.description = bundle.data.get("description")
            workload.name = bundle.data.get("name")
            workload.image = bundle.data.get("image")
            workload.flavor = bundle.data.get("flavor")
            workload.save()
    
            def determine_format(self, request):
                return 'application/json'
    
        class Meta:
            queryset = Workload.objects.all()
            authorization= Authorization()
    
    1 回复  |  直到 10 年前
        1
  •  1
  •   dan-klasson    10 年前

    如果您是指所有资源,则可以创建一个基础资源类,从中扩展:

    class BaseModelResource(ModelResource):
        class Meta:
            allowed_methods = ['put', 'post']
    
    class WorkloadResource(BaseModelResource):
        pass