On Mon, Jan 17, 2011 at 9:18 AM, OryBand <oryb...@gmail.com> wrote:
> Hello.
>
> I am using a simple custom Model:
>
> from django.db.models import ImageField
> class ImageWithThumbsField(ImageField):
>    def __init__(self, verbose_name=None, name=None, width_field=None,
> height_field=None, sizes=None, **kwargs):
>        self.verbose_name=verbose_name
>        self.name=name
>        self.width_field=width_field
>        self.height_field=height_field
>        self.sizes = sizes
>        super(ImageField, self).__init__(**kwargs)
>
> And this is my introspection rule, which I add to models.py:
>
> from south.modelsinspector import add_introspection_rules
> from lib.thumbs import ImageWithThumbsField
> add_introspection_rules(
>    [
>        (
>            (ImageWithThumbsField, ),
>            [],
>            {
>                "verbose_name": ["verbose_name", {"default": None}],
>                "name":         ["name",         {"default": None}],
>                "width_field":  ["width_field",  {"default": None}],
>                "height_field": ["height_field", {"default": None}],
>                "sizes":        ["sizes",        {"default": None}],
>            },
>        ),
>    ],
>    ["^core/.models/.lib.thumbs.ImageWithThumbsField",])
>
> However, when trying to convert my app (named "core") to south, I get
> "freeze" errors, like the rule wasn't registered:
>
>  ! Cannot freeze field 'core.additionalmaterialphoto.photo'
>  ! (this field has class lib.thumbs.ImageWithThumbsField)
>  ! Cannot freeze field 'core.material.photo'
>  ! (this field has class lib.thumbs.ImageWithThumbsField)
>  ! Cannot freeze field 'core.material.formulaimage'
>  ! (this field has class lib.thumbs.ImageWithThumbsField)
>
>  ! South cannot introspect some fields; this is probably because they
> are custom
>  ! fields. If they worked in 0.6 or below, this is because we have
> removed the
>  ! models parser (it often broke things).
>  ! To fix this, read http://south.aeracode.org/wiki/MyFieldsDontWork
>
> Does anybody know why?

Try changing the last line of your introspection rule, from
>  ["^core/.models/.lib.thumbs.ImageWithThumbsField",])
to something like
 ["^lib.thumbs.ImageWithThumbsField",])

It looks like South is not recognizing your field type, as it is using
a different package name than you are.

It may also need to be something like
'core.models.lib.thumbs.ImageWithThumbsField'
or
'core.models.ImagesWithThumbsField'
depending on how your package is structured.

At the very least, I'm pretty sure that the slashes you have in your
regex are incorrect, and won't ever match.

Regards,
Ian Clelland
<clell...@gmail.com>

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

Reply via email to