On Wed, Aug 27, 2008 at 3:13 AM, bkev <[EMAIL PROTECTED]> wrote:
> I'm working on a site that has several imperial measurements (feet and
> inches) and I'd like to implement a field in my model that uses a
> regular expression like:
>  ^(\d{1,5})\'((\s?)(-?)(\s?)([0-9]|(1[0-1]))\")?$
> to parse off the feet and inches and save them in a sortable manner
> (I'm guessing the best way would be to convert them and save them as a
> decimal number, but the list and admin display needs to in x'-y"
> format. Anyone have any ideas as to how I might accomplish that? (or
> where I should look for more information)?

I use the following method in one of my projects:

def feetinch_to_cm(length):
    """convert US style (feet-inch) length to metric (cm)"""
    if length == u'' or length is None:
        return None
    m = re.match(r'(?P<feet>\d+)[\'`](
*(?P<inch>\d+)(?P<half>.)?("|\'\'))?', length)
    if m is None:
        raise Exception("unable to parse length: %s" % length,)
    feet = int(m.group('feet'))
    inch = int(m.group('inch') or 0)
    half = int(m.group('half') == u'\xbd')
    return (30.48 * feet) + (2.54 * inch) + (1.27 * half)

I save the length in centimeters in database, then I can reformat it
as needed in the template or admin using a custom filter.

Ronny

--~--~---------~--~----~------------~-------~--~----~
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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to