On 27 sep, 09:08, MrMuffin <thomas.weh...@gmail.com> wrote:
> Where do you put your business logic in django?

Depends on the definition of "business logic", but :

> In my project I`ve put
> it into the models.py,

That's also what I tend to do for anything that's not a pure utility
class or function and that's not strictly tied to the HTTP request /
response cycle.

> but that file soon become huge and hard to
> maintain.


Then refactor your "models.py" module into a package.

> Of course I can just stuff it into whatever file I like, but
> I`d like to have some standard way of doing this. There seems to be
> something missing in django when it comes to business logic. It`s all
> model, views and templates and that`s all great for small projects,
> but both the models.py and views.py very soon gets huge and how do you
> re-organize your project when that happens? Splitting views and models
> into seperate files is only a partial solution and that requires some
> hackish code in __init__.py to make syncdb etc work.

Using the package's __init__.py as a facade is certainly not "hackish"
- it's one of - if not the main - the raison d'ĂȘtre of this file.

Now if your app is really growing that big, it's probably time to
refactor it into a set of related, more specialized apps. It's not as
easy as just splitting the models / views / whatever as sub-packages
of a same app, and doing so afterward will probably be more painful
than designing it right from the start, but in both cases it has the
benefit that it forces you to think about dependancies management,
which can greatly helps when it comes to maintainance.

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-us...@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to