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

-- 
DjangoCon US 2010 September 7-9 http://djangocon.us/

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