On Jul 16, 1:35 pm, Javier Guerra <jav...@guerrag.com> wrote: > On Thu, Jul 16, 2009 at 9:27 AM, Joshua Russo<josh.r.ru...@gmail.com> wrote: > > What are some examples of mutating operations (and other operations > > for that matter) that you use in your models? > > the most obvious are: > > - 'calculated' fields. the first example is the __unicode__() method, > but lots others, like multiplying widht/height fields to get an 'area' > field, (en/de)coding JSON data in one field to/from a python object, > fetching a filesize from the filesystem, things like that. > > - 'pre-made filters'. like alex's example > > - overriding the save() method, to add some consistency checks, update > other tables (like maintaining denormalized fields), override one > field with another, etc. > > - other kinds of objects that could present a nicer API than just a > bunch of DB records and tables, for example a tag soup, even if it's > an extra table, it's presented as extra fields and operations on the > 'tagged' model. > > - anything that Java developers could call the 'business layer', or > anything that a DB manager would like to put into an stored procedure > (unless you're able to actually do that!) > > a worthwhile goal is to make view functions really really thin. maybe > just a few lines before calling the template or a generic view. > > if your model layer presents an API that is close to the concepts the > user manages, but at the same time isn't tied to the specific web > interface, you'll be able to easily rework the whole appearance of > your website, quite possibly even change the whole user experience > without rewriting the 'operational' code. > > -- > Javier
Great suggestions. Thanks for helping me clear that up. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@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 -~----------~----~----~----~------~----~------~--~---