簡體   English   中英

Django REST框架3.1-PUT即創建mixin類,自定義lookup_field

[英]Django REST framwork 3.1 - PUT-as-create mixin class, custom lookup_field

利用此處提供的PUT-create-create mixin類(類AllowPUTAsCreateMixin ):

class Tree(models.Model):   
   myfield = models.CharField(max_length=100,unique=True)
   species = models.CharField(max_length=100, blank=True, default='')
class TreeSerializer(serializers.ModelSerializer):
    class Meta:
        model = Tree
        fields = ('myfield', 'species')
        lookup_field = 'myfield'
class TreeView(viewsets.ModelViewSet, AllowPUTAsCreateMixin):

     queryset = Tree.objects.all()
     serializer_class = TreeSerializer
     lookup_field = 'myfield'

     def update(self, request, myfield=None):
        return AllowPUTAsCreateMixin.update(self, request, lookup_field='myfield')
class AllowPUTAsCreateMixin(object):

     def update(self, request, *args, **kwargs):
          lookup_field = kwargs.pop('lookup_field')

當將數據提交為JSON(使用httpie)時:

http PUT 127.0.0.1:8000/xxx/trees/123456 <tree.json

對象已創建並公開@ / ... / trees / {myfield}

做完了!

我的錯誤是由於對正確使用kwargs的理解不足。 我在問題帖中更正了我的代碼。

謝謝!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM