You can acces a models field through Model._meta.fields. You can probably
loop through these fields in your Model's __init__ method, and change their
blank attribute to false.

TiNo

On Wed, Jun 17, 2009 at 13:32, Richard Colley <richard.col...@gmail.com>wrote:

>
> Ok, after looking through the django wiki entries for AuditTrail
> (http://code.djangoproject.com/wiki/AuditTrail) and DynamicModels
> (http://code.djangoproject.com/wiki/DynamicModels), I guess I can see
> that there is a potential solution there.
>
> But I'd still appreciate any comments on the desirability of doing
> this, and potential alternative solutions.
>
> Thanks,
> Richard
>
> On Jun 17, 8:03 pm, Richard Colley <richard.col...@gmail.com> wrote:
> > I have a need to define 2 models, both with a large number of fields
> > in common, but where in once case these common fields are completely
> > optional, and in the other case they are mandatory.
> >
> > class XYZTemplate(Model):
> >   field_a = TextField( .... blank=True)
> >   field_b = TextField( .... blank=True)
> >   field_c = IntegerField( .... blank=True)
> >   # other fields unique to this class
> >
> > Notice, in the XYZTemplate, the fields from A are all optional.
> >
> > class XYZ(Model):
> >   field_a = TextField( .... blank=False)
> >   field_b = TextField( .... blank=False)
> >   field_c = IntegerField( .... blank=False)
> >   # other fields unique to this class
> >
> > But in XYZ they must be filled in.
> >
> > My purpose is to allow "templates" (gee that's a bit of an overworked
> > term ... I am *not* referring here to django html templates) of an
> > object to be partially filled in and stored in the database as an
> > XYZTemplate  Then at a later time, many XYZ instances will be created
> > based on the "default" values stored in an XYZTemplate instance.
> >
> > I was thinking along the lines of an abstract model like so:
> >
> > class A(Model):
> >   field_a = TextField( .... blank=True)
> >   field_b = TextField( .... blank=True)
> >   field_c = IntegerField( .... blank=True)
> >   class Meta:
> >     abstract=True
> >     app_label='...'
> >
> > Then define the other classes as:
> >
> > class XYZTemplate(Model, A):
> >   # other fields unique to this class
> >
> > class XYZ(Model, A):
> >   # other fields unique to this class
> >
> > But how do I make the XYZ field_a, field_b, field_c have blank=False.
> >
> > Without violating DRY, is there any way I can do this in Django?  Can
> > I fiddle with the attributes of the fields from class A in class XYZ?
> > Any other solutions?
> >
> > Thanks for any advice,
> > Richard
> >
>

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