On Thu, Feb 13, 2020 at 6:34 PM Mrunalini Ramnath <rmruna.9...@gmail.com>
wrote:

> Hey folks!
> I've been researching on effective ways to separate business logic from
> views.py. I currently also have separate files for helper functions but the
> codebase is still a little cluttered.
>

How about going on the traditional MVC way?

Your views act as controllers with only one concern i.e. to operate on the
HTTP plane, call services, raise exceptions maybe.

I generally create a *service.py* in each app to implement the business
logic and just call it inside my *views.py*. It helps to make my business
logic loosely coupled with the web-server. Also, it has an upside that it
makes testing easier.


> I found this method of implementation that involves creating a manager
> class for each model that can contain all the necessary functions, and thin
> views for executing said function. There are quite a few sources pertaining
> to this but I found this to be the strongest one in support so far:
> https://sunscrapers.com/blog/where-to-put-business-logic-django/#Idea_4_QuerySetsManagers
>
> Are there any more pros and cons that haven't been discussed in it?
>
> --
> 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+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/django-users/a893a097-c091-42ae-9638-ec4cf0ec8a9d%40googlegroups.com
> <https://groups.google.com/d/msgid/django-users/a893a097-c091-42ae-9638-ec4cf0ec8a9d%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
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+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CAD%3DM5eTWKRMcszkWA3EEEUbauQ7n3qKoB1VBrDc9BJ4uj9a%2BYQ%40mail.gmail.com.

Reply via email to