Thursday, October 31, 2019

Re: __init__ method called every time on same APIView object

urls.py:

urlpatterns = [
...
path('incoming-calls/', incoming_calls.IncomingCallsReport.as_view(), name='incoming-calls'),
...
]

incoming_calls.py

class IncomingCallsReport(APIView):
    select_fields = ["uniqueid", "enterdate"]

    def __init__(self):
        show_contact_details = settings.SHOW_CONTACT_DETAILS
        if show_contact_details:
            for i in range(11):
                self.select_fields.append("custom{}".format(i + 1))

    def post(self, request):               
        ...
        return Response(status=200)    


With the code above, every time I make a POST to incoming-calls/, the field select_fields gets 10 new custom fields, and that's not the idea


On Wednesday, October 30, 2019 at 6:10:08 PM UTC-5, Diana María Bedoya Ramírez wrote:
Hello,

I have an APIView object with an __init__method. In that __init__ I have a loop that extends a class list variable. Every time I make a POST to the url that calls the APIView, the items in the loop items are added to the old ones in the list, duplicating the item number every time. 

Why is the __init__ method called on the same object with every request? How can assure a new object with every requesdt I make?


--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/409a8381-609f-4419-bf45-c1a72170b5c5%40googlegroups.com.

No comments:

Post a Comment