Felix Eklöf
Felix Eklöf

Reputation: 3740

Python, bad practice to have same name on classes

I have multiple files like this in a django app.

django-app
----views
-------app_one.py
-------app_two.py
-------app_three.py

Inside app_one.py i have code similar to this

class AppOne:
    ... some methods ...

class Data(AppOne, APIView):
    def post(request):

class History(AppOne, APIView):
    def get(request):

In app_two.py I would like to name my classes like this (Note the sub_classes have the same names as in app_one):

class AppTwo:
    ... some methods ...

class Data(AppTwo, APIView):
    def post(request):

class History(AppTwo, APIView):
    def get(request):

So, my question is this: This works fine, I can run the server etc. But is this a bad practice? Could I run into unexpected results because of this?

The reason I want these specific names is because I use them inside Django admin for a permissions thing.

Upvotes: 0

Views: 118

Answers (1)

AKX
AKX

Reputation: 169308

Views don't matter in the admin at all, so that's beside the point.

No, you shouldn't bump into any trouble; after all Django doesn't really care about your view classes' naming, it just cares about how they're hooked up in your urls (or if you're using DRF, based on APIView, your API router).

There's also nothing stopping you from inheriting things cross-app (after all, apps are just Python packages that are registered with Django) if that leads to less code and/or makes sense for you.

Upvotes: 1

Related Questions