Làm cách nào để loại trừ các trường biểu mẫu nếu người dùng không phải là nhân viên? Tôi cố gắng này, nhưng đã không làm việc, đưa ra một lỗi:Django: Cách loại trừ trường biểu mẫu nếu người dùng là nhân viên?
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))
Xin lỗi, tôi đã không nhận được nó, tôi đã thêm điều này "my_form = PostForm (user = request.user)" của tôi xem, và cố định các __init__ chức năng, nhưng một lỗi đã đưa ra, tôi sẽ chỉnh sửa câu hỏi của tôi ở đây để thêm nhiều dữ liệu! – Hamza
Lỗi này xuất hiện: đối tượng 'NoneType' không có thuộc tính 'is_superuser' – Hamza
Điều này có nghĩa là bạn không có người dùng đăng nhập đang hoạt động. –