What do you mean by tri-state?
You are using a field that allows three states: TRUE, FALSE and NULL.
If I understand the model, readiness would either be TRUE or FALSE. But if
you do not want to change your field type to:
readiness = models.BooleanField("Readiness", blank=True)
then try changing:
if obj.readiness == True:
to:
if obj.readiness and obj.readiness == True:
or just:
if obj.readiness:
Will give you the same result.
This way if it doesn't exist it will not fail on the '== TRUE' test.
On Fri, May 30, 2014 at 8:49 AM, Hilde Rafaelsen <[email protected]>
wrote:
> Hi,
>
>
>
> Thanks for the response.
>
>
>
> What do you mean by tri-state?
>
>
>
> I changed my get_form to this:
>
> def get_form(self, request, obj=None, **kwargs):
>
> form = super(RequestForChangeAdmin,
> self).get_form(request, obj, **kwargs)
>
> if obj:
>
> if obj.readiness == True:
>
>
> self.exclude = ("readinessDescription", )
>
> form =
> super(RequestForChangeAdmin, self).get_form(request, obj, **kwargs)
>
> return form
>
>
>
> No my code run without errors, but nothing happpends though ☺
>
>
>
> I have tried to change the readiness filds to yes and no, but the field
> readiness descriptions is always displayed. Maybe it is not possibly to get
> a fields attribute value from admin before the admin form is posted or
> stored in database? Do you know?
>
>
>
> Regards,
>
> Hilde from Norway
>
> On Friday, May 30, 2014 12:57:19 PM UTC+2, Hilde Rafaelsen wrote:
>>
>> Hello,
>>
>> In my django admin page I want to hide some filelds from users if a
>> special field value is set. I have tried different solutions to solve my
>> problem but is stucked and hope someone can help me,
>>
>> If you look at my model I want to hide the field readinessDescription if
>> readiness value is False (no), when the user log into admin page.
>>
>> In model.py:
>> class RequestForChange (models.Model):
>> rfc = models.AutoField (primary_key=True, help_text="This is the grey
>> text")
>> heading = models.CharField("Heading", max_length=50)
>> readiness = models.NullBooleanField("Readiness", blank=True,
>> null=True)
>> readinessDescription = models.TextField("Description of
>> readiness", max_length=250, blank=True, null=True)
>>
>>
>> I found some hints on the web about using get_form from my
>> RequestForChangeAdmin page, but it won't work because i get this error
>> 'NoneType' object has no attribute 'readiness'
>>
>>
>> Here is what I have in admin.py:
>>
>> class RequestForChangeAdmin(admin.ModelAdmin):
>> formfield_overrides = {
>> models.ManyToManyField: {'widget': CheckboxSelectMultiple},
>> }
>> list_display = ('rfc', 'heading', 'enviroment', 'status')
>> search_fields = ('changeId',)
>> list_filter = ('enviroment', 'acceptAT', 'status')
>> date_hierarchy = 'criticalDate'
>> inline = [RequestForChangeInline]
>> def get_form(self, request, obj=None, **kwargs):
>> form = super(RequestForChangeAdmin, self).get_form(request, obj, **kwargs)
>> print obj
>> if obj.readiness == True:
>> self.exclude = ("readinessDescription", )
>> form = super(RequestForChangeAdmin, self).get_form(request, obj, **kwargs)
>> return form
>>
> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/django-users.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/django-users/5bc768df-3a1c-4b53-bbbb-2ec19b9c05f0%40googlegroups.com
> <https://groups.google.com/d/msgid/django-users/5bc768df-3a1c-4b53-bbbb-2ec19b9c05f0%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
> For more options, visit https://groups.google.com/d/optout.
>
--
============================================
Timothy Cook
LinkedIn Profile:http://www.linkedin.com/in/timothywaynecook
MLHIM http://www.mlhim.org
--
You received this message because you are subscribed to the Google Groups
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-users/CA%2B%3DOU3Xb87s3nHy%2BKPb_UEbVsSsrFd7Z5-OfisDKgN1gD6R6aQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.