传值的Django的ModelForm我有这个form.py:如何InputHidden charField从另一个模型
from shortcut import get_timezone
class HostCreateForm(forms.ModelForm):
def save(self, commit=True):
host1 = super(HostCreateForm, self).save(commit=False)
user = request.user.username
host1.timezone=get_timezone(user=user)
host1.save()
return host1
class Meta:
model = Host
widgets = {
'user': forms.HiddenInput(),
'timezone': forms.HiddenInput()
}
-
时区是从model.py定义主机模型的输入隐藏字段。
-
get_timezone方法:(定义如下)
def get_timezone(user=None):
timezone = Userprofile.objects.all()
timezone = timezone.get(user=user)
return timezone.timezone
而用户配置是另一种模式中models.py还定义了用于将时区,姓和名的用户的存储在他/她的注册时间。我的主要动机是从Userprofile模型获取此默认时区,并将其传递到该隐藏输入字段(时区)。 我试着用上面的代码(host1.timezone = get_timezone(user = user)用save方法写的调用get_timezone方法,并且它应该为一个已登录的用户返回时区格式Userprofile模型,但它不起作用
我认为主要的问题是来自请求用户在调用get_timezone方法时从保存方法传入的名称。我无法做到这一点。从目前的情况我收到以下错误: 全局名称“请求”没有定义
任何帮助将很可观
Thenx用于回复Fallen。但还有另外一个问题,我无法将请求用户或登录用户传递给get_timezone方法(请参阅save方法)。根据保存方法中的上述定义,我得到这个错误:没有定义全局名称请求 –
现在我已经更新了这个问题。请检查:) –
答复更新... – FallenAngel