我在尝试控制管理项条目,其中非超级用户帐户无法保存具有日期属性超过2天的ChannelStatus模型输入。我需要得到用户,以便我可以检查请求是否是请求者或超级用户,但无法实现此目的。从管理员验证类中获取用户
我已经尝试了“request.user.is_superuser”,“user.is_superuser”,“self.user.is_superuser”和“self.request.user.is_superuser”,但似乎没有任何工作。
class ChannelStatusValidForm(forms.ModelForm):
class Meta:
model = ChannelStatus
def clean(self):
cleaned_data = self.cleaned_data
mydate = cleaned_data.get("date")
today = date.today()
if request.user.is_superuser:## here is the problem
return cleaned_data
elif (today - timedelta(days=2)) > mydate:
raise forms.ValidationError("Invalid date, maximum 2 days allowed.")
else:
return cleaned_data
这是因为您没有'request'对象。你需要给表单验证函数一个'RequestContext'对象。 – 2009-09-07 09:22:07
我尝试过类ChannelStatusValidForm(forms.ModelForm,request):但它似乎不起作用。 – Hellnar 2009-09-07 09:34:35
是的,我试过Google搜索,我找不到,或者找出如何发送它。我确信我已经看到它完成了。我相信有人会帮助你尽快解决问题! – 2009-09-07 09:44:00