On Mon, Sep 27, 2010 at 12:40 PM, Steve Holden <holden...@gmail.com> wrote:
> On 9/27/2010 4:57 AM, Thomas Weholt wrote:
>> On Mon, Sep 27, 2010 at 10:38 AM, bruno desthuilliers
>> <bruno.desthuilli...@gmail.com> wrote:
>>> 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.
>>
>> Ok, I see your point, but still -  there`s nothing about this in the
>> main django documentation as far as I know. The docs should have a
>> section about organizing projects where the standard models.py and
>> views.py doesn`t fit anymore.
>>
> I think the point is to learn enough Python that you don't need
> Django-specific advice.
>
> [Thinks: definitely time for a "Python for Djangonauts" class].
>
> regards
>  Steve
>

I`m asking for a best-practice advice, and have gotten plenty of good
examples of ways to solve this "problem", but I still think this
should be covered by the standard django docs anyhow, especially since
there are some django specific magic related to the files generated by
using manage.py startapp. It`s obviously not clear to all django users
how to best handle growing projects, split into modules etc and just
taking some of the info in this thread, re-writing it and giving a few
examples and then adding it to the std docs would be enough.

-- 
Mvh/Best regards,
Thomas Weholt
http://www.weholt.org

-- 
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