Как позвонить в инстанции Ресурс в Джанго Тастипи.?

Вот мой вкусный фрагмент кода.

У меня есть ресурс и в post_list метод, экземпляр Mysample создается там.

Я хочу вызвать метод Mysample Инстанс, пожалуйста, помогите мне, как это сделать,

пожалуйста, найдите комментарий в коде, где мне нужно вызвать метод Mysample пример

class MysampleResource(ModelResource):
    intfeild1 = fields.IntegerField('intfeild1_id', null=True)
    intfeild2 = fields.IntegerField('intfeild1_id')

    class Meta:
        always_return_data = True
        queryset = Mysample.objects.all()
        allowed_methods = ['get','post','put','delete',]
        authentication = SessionAuthentication()
        authorization = MysampleAuthorization()


    def post_list(self, request, **kwargs):

            result = super(MysampleResource, self).post_list(request, **kwargs)

            #here I want to call a method of Mysample Instance.
            return result

Пожалуйста, помогите мне, я новичок, поэтому не могли бы вы дать предложение о том, какой метод переопределить и где мне нужно это сделать.

1 ответ

Решение

Вам просто нужно добавить свой метод в свой ресурс:

def test_method(self,param*):
        #Do your stuff
        return result

и в post_list вы можете назвать его так:

self.test_method(param*)

Примечание. Объявление метода содержит 2 параметра, но в python "self" передается как неявный параметр, поэтому при вызове метода вы не передаете объект self.

  • = может быть более чем одним параметром, в этом случае используйте "," для их разделения.

Если мы применим все предыдущие концепции, ваш код должен выглядеть так:

class MysampleResource(ModelResource):
    intfeild1 = fields.IntegerField('intfeild1_id', null=True)
    intfeild2 = fields.IntegerField('intfeild1_id')

    class Meta:
        always_return_data = True
        queryset = Mysample.objects.all()
        allowed_methods = ['get','post','put','delete',]
        authentication = SessionAuthentication()
        authorization = MysampleAuthorization()


        def post_list(self, request, **kwargs):

                result = super(MysampleResource, self).post_list(request, **kwargs)

                #Let's say that you want to pass resquest as your param to your method
                method_result=self.test_method(request)
                return result

         def test_method(self,request):
                #Do your stuff
                return result
Другие вопросы по тегам