Как позвонить в инстанции Ресурс в Джанго Тастипи.?
Вот мой вкусный фрагмент кода.
У меня есть ресурс и в 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