How to reuse a function or class in DjangoHow to merge two dictionaries in a single expression?How do I check if a list is empty?How do I check whether a file exists without exceptions?How to flush output of print function?How can I safely create a nested directory?Using global variables in a functionHow do I sort a dictionary by value?How to make a chain of function decorators?Does Django scale?How do I list all files of a directory?

What is the technical explanation of the note "A♭" in a F7 chord in the key of C?

Why should I cook the flour first when making bechamel sauce?

What to look for in climbing shoes?

What is the superlative of ipse?

Will it hurt my career to work as a graphic designer in a startup for beauty and skin care?

What are the benefits to casting without the need for somatic components?

Mathematica function equivalent to Matlab's residue function (partial fraction expansion)

I do not have power to all my breakers

Why did Steve Rogers choose Sam in Endgame?

What's the phrasal verb for carbonated drinks exploding out of the can after being shaken?

Why does the Trade Federation become so alarmed upon learning the ambassadors are Jedi Knights?

Why is "dark" an adverb in this sentence?

Can a pizza stone be fixed after soap has been used to clean it?

How could an animal "smell" carbon monoxide?

Can a polymorphed creature understand languages spoken under the effect of Tongues?

What are "full piece" and "half piece" in chess?

What is the German word or phrase for "village returning to forest"?

A scene of Jimmy diversity

Why do legislative committees exist?

Video editor for YouTube

How to cut stainless steel sheet without burning it?

Print all lines that don't have numbers, using sed

Sending a photo of my bank account card to the future employer

Are the errors in this formulation of the simple linear regression model random variables?



How to reuse a function or class in Django


How to merge two dictionaries in a single expression?How do I check if a list is empty?How do I check whether a file exists without exceptions?How to flush output of print function?How can I safely create a nested directory?Using global variables in a functionHow do I sort a dictionary by value?How to make a chain of function decorators?Does Django scale?How do I list all files of a directory?






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








1















This is my class TimesheetListApiV2 there are lots of such kind of classes.



@valid_accesstoken_check
class TimesheetListApiV2(APIView):

def get(self, request):

try:
accesstoken=AccessToken.objects.get(
token=self.request.META.get('HTTP_AUTHORIZATION').replace('Bearer ', '')
)
except ObjectDoesNotExist:
return Response (

"status" : False,
"error" : "Wrong Access Token",
"error_message":"You have provided wrong access token.",

)


Now in all my classes this piece of code is there.



try:
accesstoken=AccessToken.objects.get(
token=self.request.META.get('HTTP_AUTHORIZATION').replace('Bearer ', '')
)
except ObjectDoesNotExist:
return Response (

"status" : False,
"error" : "Wrong Access Token",
"error_message":"You have provided wrong access token.",

)


I want to write a function or class where to reuse that code instead of writing it. But it should be workable even request should be pass. Even in future i am going to add more such code which should be reused.



I tried to make this decorators.py



from django.core.exceptions import ObjectDoesNotExist
from oauth2_provider.models import AccessToken

def valid_accesstoken_check(function):
def wrap(request, *args, **kwargs):
try:
accesstoken=AccessToken.objects.get(
token=self.request.META.get('HTTP_AUTHORIZATION').replace('Bearer ', '')
)
except ObjectDoesNotExist:
return Response (

"status" : False,
"error" : "Wrong Access Token",
"error_message":"You have provided wrong access token.",

)
wrap.__doc__ = function.__doc__
wrap.__name__ = function.__name__
return wrap


But it is giving error



path('timesheet/list', views.TimesheetListApiV2.as_view(), name='api_v2_timesheet_list'),
AttributeError: 'function' object has no attribute 'as_view'









share|improve this question
























  • Looks like you need a decorator?

    – E.Serra
    Mar 26 at 7:36











  • How can i create a decorator.

    – Huzaif Sayyed
    Mar 26 at 7:37











  • @E.Serra i tried to make decorator but it is giving error

    – Huzaif Sayyed
    Mar 26 at 7:50











  • You can create a Mixin for that

    – ruddra
    Mar 26 at 8:19











  • @ruddra i tried to create mixin also but it is not working. In mixin i have put get method. How can i create mixin for that because mixin and decorator is new topic for me

    – Huzaif Sayyed
    Mar 26 at 8:22


















1















This is my class TimesheetListApiV2 there are lots of such kind of classes.



@valid_accesstoken_check
class TimesheetListApiV2(APIView):

def get(self, request):

try:
accesstoken=AccessToken.objects.get(
token=self.request.META.get('HTTP_AUTHORIZATION').replace('Bearer ', '')
)
except ObjectDoesNotExist:
return Response (

"status" : False,
"error" : "Wrong Access Token",
"error_message":"You have provided wrong access token.",

)


Now in all my classes this piece of code is there.



try:
accesstoken=AccessToken.objects.get(
token=self.request.META.get('HTTP_AUTHORIZATION').replace('Bearer ', '')
)
except ObjectDoesNotExist:
return Response (

"status" : False,
"error" : "Wrong Access Token",
"error_message":"You have provided wrong access token.",

)


I want to write a function or class where to reuse that code instead of writing it. But it should be workable even request should be pass. Even in future i am going to add more such code which should be reused.



I tried to make this decorators.py



from django.core.exceptions import ObjectDoesNotExist
from oauth2_provider.models import AccessToken

def valid_accesstoken_check(function):
def wrap(request, *args, **kwargs):
try:
accesstoken=AccessToken.objects.get(
token=self.request.META.get('HTTP_AUTHORIZATION').replace('Bearer ', '')
)
except ObjectDoesNotExist:
return Response (

"status" : False,
"error" : "Wrong Access Token",
"error_message":"You have provided wrong access token.",

)
wrap.__doc__ = function.__doc__
wrap.__name__ = function.__name__
return wrap


But it is giving error



path('timesheet/list', views.TimesheetListApiV2.as_view(), name='api_v2_timesheet_list'),
AttributeError: 'function' object has no attribute 'as_view'









share|improve this question
























  • Looks like you need a decorator?

    – E.Serra
    Mar 26 at 7:36











  • How can i create a decorator.

    – Huzaif Sayyed
    Mar 26 at 7:37











  • @E.Serra i tried to make decorator but it is giving error

    – Huzaif Sayyed
    Mar 26 at 7:50











  • You can create a Mixin for that

    – ruddra
    Mar 26 at 8:19











  • @ruddra i tried to create mixin also but it is not working. In mixin i have put get method. How can i create mixin for that because mixin and decorator is new topic for me

    – Huzaif Sayyed
    Mar 26 at 8:22














1












1








1








This is my class TimesheetListApiV2 there are lots of such kind of classes.



@valid_accesstoken_check
class TimesheetListApiV2(APIView):

def get(self, request):

try:
accesstoken=AccessToken.objects.get(
token=self.request.META.get('HTTP_AUTHORIZATION').replace('Bearer ', '')
)
except ObjectDoesNotExist:
return Response (

"status" : False,
"error" : "Wrong Access Token",
"error_message":"You have provided wrong access token.",

)


Now in all my classes this piece of code is there.



try:
accesstoken=AccessToken.objects.get(
token=self.request.META.get('HTTP_AUTHORIZATION').replace('Bearer ', '')
)
except ObjectDoesNotExist:
return Response (

"status" : False,
"error" : "Wrong Access Token",
"error_message":"You have provided wrong access token.",

)


I want to write a function or class where to reuse that code instead of writing it. But it should be workable even request should be pass. Even in future i am going to add more such code which should be reused.



I tried to make this decorators.py



from django.core.exceptions import ObjectDoesNotExist
from oauth2_provider.models import AccessToken

def valid_accesstoken_check(function):
def wrap(request, *args, **kwargs):
try:
accesstoken=AccessToken.objects.get(
token=self.request.META.get('HTTP_AUTHORIZATION').replace('Bearer ', '')
)
except ObjectDoesNotExist:
return Response (

"status" : False,
"error" : "Wrong Access Token",
"error_message":"You have provided wrong access token.",

)
wrap.__doc__ = function.__doc__
wrap.__name__ = function.__name__
return wrap


But it is giving error



path('timesheet/list', views.TimesheetListApiV2.as_view(), name='api_v2_timesheet_list'),
AttributeError: 'function' object has no attribute 'as_view'









share|improve this question
















This is my class TimesheetListApiV2 there are lots of such kind of classes.



@valid_accesstoken_check
class TimesheetListApiV2(APIView):

def get(self, request):

try:
accesstoken=AccessToken.objects.get(
token=self.request.META.get('HTTP_AUTHORIZATION').replace('Bearer ', '')
)
except ObjectDoesNotExist:
return Response (

"status" : False,
"error" : "Wrong Access Token",
"error_message":"You have provided wrong access token.",

)


Now in all my classes this piece of code is there.



try:
accesstoken=AccessToken.objects.get(
token=self.request.META.get('HTTP_AUTHORIZATION').replace('Bearer ', '')
)
except ObjectDoesNotExist:
return Response (

"status" : False,
"error" : "Wrong Access Token",
"error_message":"You have provided wrong access token.",

)


I want to write a function or class where to reuse that code instead of writing it. But it should be workable even request should be pass. Even in future i am going to add more such code which should be reused.



I tried to make this decorators.py



from django.core.exceptions import ObjectDoesNotExist
from oauth2_provider.models import AccessToken

def valid_accesstoken_check(function):
def wrap(request, *args, **kwargs):
try:
accesstoken=AccessToken.objects.get(
token=self.request.META.get('HTTP_AUTHORIZATION').replace('Bearer ', '')
)
except ObjectDoesNotExist:
return Response (

"status" : False,
"error" : "Wrong Access Token",
"error_message":"You have provided wrong access token.",

)
wrap.__doc__ = function.__doc__
wrap.__name__ = function.__name__
return wrap


But it is giving error



path('timesheet/list', views.TimesheetListApiV2.as_view(), name='api_v2_timesheet_list'),
AttributeError: 'function' object has no attribute 'as_view'






python django python-3.x django-views






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Mar 26 at 7:49







Huzaif Sayyed

















asked Mar 26 at 7:35









Huzaif SayyedHuzaif Sayyed

5421 silver badge20 bronze badges




5421 silver badge20 bronze badges












  • Looks like you need a decorator?

    – E.Serra
    Mar 26 at 7:36











  • How can i create a decorator.

    – Huzaif Sayyed
    Mar 26 at 7:37











  • @E.Serra i tried to make decorator but it is giving error

    – Huzaif Sayyed
    Mar 26 at 7:50











  • You can create a Mixin for that

    – ruddra
    Mar 26 at 8:19











  • @ruddra i tried to create mixin also but it is not working. In mixin i have put get method. How can i create mixin for that because mixin and decorator is new topic for me

    – Huzaif Sayyed
    Mar 26 at 8:22


















  • Looks like you need a decorator?

    – E.Serra
    Mar 26 at 7:36











  • How can i create a decorator.

    – Huzaif Sayyed
    Mar 26 at 7:37











  • @E.Serra i tried to make decorator but it is giving error

    – Huzaif Sayyed
    Mar 26 at 7:50











  • You can create a Mixin for that

    – ruddra
    Mar 26 at 8:19











  • @ruddra i tried to create mixin also but it is not working. In mixin i have put get method. How can i create mixin for that because mixin and decorator is new topic for me

    – Huzaif Sayyed
    Mar 26 at 8:22

















Looks like you need a decorator?

– E.Serra
Mar 26 at 7:36





Looks like you need a decorator?

– E.Serra
Mar 26 at 7:36













How can i create a decorator.

– Huzaif Sayyed
Mar 26 at 7:37





How can i create a decorator.

– Huzaif Sayyed
Mar 26 at 7:37













@E.Serra i tried to make decorator but it is giving error

– Huzaif Sayyed
Mar 26 at 7:50





@E.Serra i tried to make decorator but it is giving error

– Huzaif Sayyed
Mar 26 at 7:50













You can create a Mixin for that

– ruddra
Mar 26 at 8:19





You can create a Mixin for that

– ruddra
Mar 26 at 8:19













@ruddra i tried to create mixin also but it is not working. In mixin i have put get method. How can i create mixin for that because mixin and decorator is new topic for me

– Huzaif Sayyed
Mar 26 at 8:22






@ruddra i tried to create mixin also but it is not working. In mixin i have put get method. How can i create mixin for that because mixin and decorator is new topic for me

– Huzaif Sayyed
Mar 26 at 8:22













1 Answer
1






active

oldest

votes


















0














Your decorator should apply to the get method, not the class itself:



class TimesheetListApiV2(APIView):
@valid_accesstoken_check
def get(self, request):
...





share|improve this answer






















    Your Answer






    StackExchange.ifUsing("editor", function ()
    StackExchange.using("externalEditor", function ()
    StackExchange.using("snippets", function ()
    StackExchange.snippets.init();
    );
    );
    , "code-snippets");

    StackExchange.ready(function()
    var channelOptions =
    tags: "".split(" "),
    id: "1"
    ;
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function()
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled)
    StackExchange.using("snippets", function()
    createEditor();
    );

    else
    createEditor();

    );

    function createEditor()
    StackExchange.prepareEditor(
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader:
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    ,
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    );



    );













    draft saved

    draft discarded


















    StackExchange.ready(
    function ()
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55351902%2fhow-to-reuse-a-function-or-class-in-django%23new-answer', 'question_page');

    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    Your decorator should apply to the get method, not the class itself:



    class TimesheetListApiV2(APIView):
    @valid_accesstoken_check
    def get(self, request):
    ...





    share|improve this answer



























      0














      Your decorator should apply to the get method, not the class itself:



      class TimesheetListApiV2(APIView):
      @valid_accesstoken_check
      def get(self, request):
      ...





      share|improve this answer

























        0












        0








        0







        Your decorator should apply to the get method, not the class itself:



        class TimesheetListApiV2(APIView):
        @valid_accesstoken_check
        def get(self, request):
        ...





        share|improve this answer













        Your decorator should apply to the get method, not the class itself:



        class TimesheetListApiV2(APIView):
        @valid_accesstoken_check
        def get(self, request):
        ...






        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Mar 26 at 10:32









        albaralbar

        2,0841 gold badge9 silver badges19 bronze badges




        2,0841 gold badge9 silver badges19 bronze badges
















            Got a question that you can’t ask on public Stack Overflow? Learn more about sharing private information with Stack Overflow for Teams.







            Got a question that you can’t ask on public Stack Overflow? Learn more about sharing private information with Stack Overflow for Teams.



















            draft saved

            draft discarded
















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid


            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.

            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55351902%2fhow-to-reuse-a-function-or-class-in-django%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Kamusi Yaliyomo Aina za kamusi | Muundo wa kamusi | Faida za kamusi | Dhima ya picha katika kamusi | Marejeo | Tazama pia | Viungo vya nje | UrambazajiKuhusu kamusiGo-SwahiliWiki-KamusiKamusi ya Kiswahili na Kiingerezakuihariri na kuongeza habari

            Swift 4 - func physicsWorld not invoked on collision? The Next CEO of Stack OverflowHow to call Objective-C code from Swift#ifdef replacement in the Swift language@selector() in Swift?#pragma mark in Swift?Swift for loop: for index, element in array?dispatch_after - GCD in Swift?Swift Beta performance: sorting arraysSplit a String into an array in Swift?The use of Swift 3 @objc inference in Swift 4 mode is deprecated?How to optimize UITableViewCell, because my UITableView lags

            Access current req object everywhere in Node.js ExpressWhy are global variables considered bad practice? (node.js)Using req & res across functionsHow do I get the path to the current script with Node.js?What is Node.js' Connect, Express and “middleware”?Node.js w/ express error handling in callbackHow to access the GET parameters after “?” in Express?Modify Node.js req object parametersAccess “app” variable inside of ExpressJS/ConnectJS middleware?Node.js Express app - request objectAngular Http Module considered middleware?Session variables in ExpressJSAdd properties to the req object in expressjs with Typescript