Django : Comment exclure du champ de formulaire si l'utilisateur est personnel?

Comment exclure des champs de formulaire si l'utilisateur n'est pas personnel ? J'ai essayé cela, mais ne fonctionne pas , donne une erreur :

global name 'user' is not defined

class PostForm(ModelForm):

    class Meta:
        model = Photo
        exclude = ['author','featured','published']

    def __init__(self, *args, **kwargs):
        published = kwargs.pop('published', None)
        super(PostForm, self).__init__(*args, **kwargs)
        if not user.is_staff:
           del self.fields['published']

view.py

def addpost(request):

    if request.method == 'POST': 
        form = PostForm(request.POST,request.FILES,user=request.user) 
        if form.is_valid():

            post = form.save(False)
            post.author = request.user
            form.save()

            return HttpResponseRedirect(reverse('insight.content.views.index', ))

    else:
        form = PostForm(user=request.user)


    ispost = True
    return render_to_response('form_add_place.html', {'form': form,'ispost':ispost},context_instance=RequestContext(request))
InformationsquelleAutor Hamza | 2012-03-28