I get same error as before; 'NoneType' object has no attribute 'readiness'
when I changed to your excample. I don't understand why this is not working
for me, but for everyone else....
Is it something I have forgot to import? I hope you can take a quick look
at my uploaded files. Is it ok to just use get_form from the admin class
directly, or do I need to create a Form class as well?
On Friday, May 30, 2014 2:35:01 PM UTC+2, Timothy W. Cook wrote:
>
> try this get_form:
>
> def get_form(self, request, obj=None, **kwargs):
> if obj.readiness:
> self.exclude = ("readinessDescription", )
> return super(RequestForChangeAdmin, self).get_form(request, obj,
> **kwargs)
>
>
> I have never used 'exclude' but it looks like yours should work.
>
>
> On Fri, May 30, 2014 at 9:18 AM, Hilde Rafaelsen <[email protected]
> <javascript:>> wrote:
>
>> Thanx,
>>
>> I now changed my if test to just if obj.readines but then I get the error
>> message 'NoneType' object has no attribute 'readiness'
>>
>>
>> I have tried with several fields from my model, but I always get this
>> error. I guess it must be something essential I am doing wrong here, since
>> my obj seems to be none always...
>>
>> I have get_form inside my modelAdmin class.
>>
>>
>> On Friday, May 30, 2014 2:06:59 PM UTC+2, Timothy W. Cook wrote:
>>
>>> 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] <javascript:>.
>> To post to this group, send email to [email protected]
>> <javascript:>.
>> 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/cd42fea2-88f0-4f0f-b98e-985f7c464189%40googlegroups.com
>>
>> <https://groups.google.com/d/msgid/django-users/cd42fea2-88f0-4f0f-b98e-985f7c464189%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/177c9ae8-a811-437e-8a05-fc1719dcb3a0%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.