Hi Daniel,

I think this will solve this problem

if i have a boolean field in my model and if I would like to display
only if that fileld id true to the non-super users and otherwise
always show the boolean field.

But my question was

how to disable the select all widget from the admin panel if the user
is non-super user. The select all widget helps in selecting all the
objects but since my action is empty, i dont want to show any widget.

Also, I am not sure why we need this as well

def change_view(self, request, object_id, extra_context=None):
if Part.objects.get(id=object_id).is_deleted==True and
request.user.is_superuser == False:
return HttpResponseRedirect('/admin/')
else:
return super(PartAdmin, self).change_view(request,
object_id,extra_context=None)

Thanks.

--RJ





2010/5/21 Danfi <tda...@gmail.com>:
> ChangeList is in the file /python**/Lib/site-packages/django/contrib/
> admin/views/main.py ,and we use ModelAdmin so change_view function can
> direct to be used.
>
> On 5月21日, 下午2时08分, rahul jain <jainwolver...@gmail.com> wrote:
>> Hi Danfi,
>>
>> Thanks for your quick response. But can you explain a little more how
>> can we connect ChangeList class with that function change_view.
>> Confuse about it.
>>
>> --RJ
>>
>> 2010/5/20 Danfi <tda...@gmail.com>:
>>
>>
>>
>> > In Auth group you can create a group and set the limits.
>>
>> > see different panel maybe use changelist_view
>>
>> > I saw this just be similar to yours'
>>
>> > class Part(models.Model):
>> > is_deleted = models.BooleanField()
>> > //////////////////////////////////////////////
>> > class PartAdmin(admin.ModelAdmin):
>> > actions =None
>> > def change_view(self, request, object_id, extra_context=None):
>> > if Part.objects.get(id=object_id).is_deleted==True and
>> > request.user.is_superuser == False:
>> > return HttpResponseRedirect('/admin/')
>> > else:
>> > return super(PartAdmin, self).change_view(request,
>> > object_id,extra_context=None)
>>
>> > /////////////////////////////////////
>> > edit admin/views/main.py
>> > IS_DELETED_VAR = 'is_deleted'
>>
>> > class ChangeList(object):
>> > def __init__(self, request, model, list_display, list_display_links,
>> > list_filter, date_hierarchy, search_fields, list_select_related,
>> > list_per_page, list_editable, model_admin):
>> > self.model = model
>> > self.opts = model._meta
>> > self.lookup_opts = self.opts
>> > self.root_query_set = model_admin.queryset(request)
>> >  try:
>> > f =self.lookup_opts.get_field(IS_DELETED_VAR)
>> > except models.FieldDoesNotExist:
>> > self.root_query_set = self.root_query_set
>> > else:
>> > if isinstance(f,models.BooleanField) and (request.user.is_superuser ==
>> > False):
>> > self.root_query_set = self.root_query_set.exclude(is_deleted = 'True')
>> > else:
>> > self.root_query_set = self.root_query_set
>>
>> > On 5月21日, 下午12时01分, rahul jain <jainwolver...@gmail.com> wrote:
>> >> Hi Everyone,
>>
>> >> I would like to implement different views in admin panel based on the 
>> >> user.
>>
>> >> if the user is any other user apart from admin
>>
>> >> then for all those models, the user should just be able to see those
>> >> objects,( no change, delete and add).
>> >> Those users should also not see the select boxes or basically select all.
>>
>> >> So by default django provides three permissions, add, delete,change. I
>> >> would like to add one more permission on admin panel.
>>
>> >> I know this could be done on our own views through this
>>
>> >> class USCitizen(models.Model):
>> >>     # ...
>> >>     class Meta:
>> >>         permissions = (
>> >>             ("can_drive", "Can drive"),
>> >>             ("can_vote", "Can vote in elections"),
>> >>             ("can_drink", "Can drink alcohol"),
>> >>         )
>>
>> >> {% if perms.foo %}
>> >>     <p>You have permission to do something in the foo app.</p>
>> >>     {% if perms.foo.can_vote %}
>> >>         <p>You can vote!</p>
>> >>     {% endif %}
>> >>     {% if perms.foo.can_drive %}
>> >>         <p>You can drive!</p>
>> >>     {% endif %}
>> >> {% else %}
>> >>     <p>You don't have permission to do anything in the foo app.</p>
>> >> {% endif %}
>>
>> >> But how to do the same thing on the django admin. Also, how to remove
>> >> the select all functionality for selected users.
>>
>> >> --RJ
>>
>> >> --
>> >> 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 
>> >> athttp://groups.google.com/group/django-users?hl=en.
>>
>> > --
>> > 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 
>> > athttp://groups.google.com/group/django-users?hl=en.
>>
>> --
>> 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 
>> athttp://groups.google.com/group/django-users?hl=en.
>
> --
> 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.
>
>

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