That's exactly what I'm looking for.
I'll probably try adding that feature to the model base class or as a
mixin.
@classmethod
def get_field_option_by_name(self, fieldname, optionname):
field = self._meta.get_field_by_name(fieldname)[0]
return getattr(fieldname, optionname)
possibly with the default thing also.
On Oct 30, 12:18 pm, bruno desthuilliers
<[EMAIL PROTECTED]> wrote:
> On 30 oct, 14:26, Mark Wolgemuth <[EMAIL PROTECTED]> wrote:
>
>
>
> > It seems like I'm missing something, but here's what I'm trying to do:
>
> > In creating a Form object, I'm setting size limit validation
> > (max_length). I'd like to recover the value for that from the
> > corresponding Model's Field's max_length. So basically I want a symbol
> > lookup that will inspect in the options of a field I have defined for
> > a model, without having an instance of the model, just it's type.
>
> > This is to avoid the 2 having to share a common separately defined
> > constant, or just using an integer that I have to coordinate in both
> > places, or in place of always using auto forms.
>
> > eg
>
> > class MyModel(Model):
> > myfield = CharField(max_length=128)
>
> > ------
>
> > class MyForm(Form):
> > myfield = CharField(max_length=**GET.FROM.MODEL**)
>
> def get_model_field_option(model, field, option, default=None):
> field = model._meta.get_field_by_name(field)[0]
> return getattr(field, option, default)
>
> class MyForm(Form):
> myfield = CharField(
> max_length=get_model_field_option(MyModel, 'myfield',
> 'max_length', 100)
> )
>
> Caveat : Not sure it works on all possible options for all possible
> fields - testing left as an exercise to to OP !-)
>
> HTH
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Django users" group.
To post to this group, send email to [email protected]
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
-~----------~----~----~----~------~----~------~--~---