Hi

I have a model which I access from the admin application.  I want to
exclude some fields dynamically.

My model looks like this:

class StockOrder(models.Model):
        number_of_items_pending_order =
models.PositiveIntegerField(max_length=5, default=1)
        number_of_items_ordered = models.PositiveIntegerField(max_length=5,
default=1)
        number_of_items_delivered = models.PositiveIntegerField(max_length=5,
default=1)
        order_date = models.DateTimeField(auto_now_add=True,
verbose_name=u'Date ordered')
        confirmed = models.BooleanField(default=False)
        confirmed_date = models.DateTimeField(verbose_name=u'Date confirmed',
null=True, blank=True)
        cancelled = models.BooleanField(default=False)
        cancel_date = models.DateTimeField(verbose_name=u'Date cancelled',
null=True, blank=True)
        completed = models.BooleanField(default=False)
        completion_date = models.DateTimeField(verbose_name=u'Date
completion', null=True, blank=True)

I want to exclude some fields depending on the state of others.  So if
completed is True I don't want to see the confirmed or cancelled
flags.

The options to exclude fields I understand are:

1: ModelAdmin.exclude attribute  in admin.py.  I can't see how this
can be manipulated dynamically however.

2.  I create my own Modelform and set the form attribute in admin.py
to the modelform, the modelform will look something like this:

class StockOrderForm(ModelForm):
    class Meta:
        model = StockOrder
        exclude = ('cancelled',)

However I run into the same problem as in 1, how can I manipulate the
exclude parameter.  Is it possible to do so in __init__?

Thanks

Simon

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-us...@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