我有一个模型如下:
课程日志(models.Model):
user=models.ForeignKey(用户)
油箱=型号。外键(油箱剖面)
ts=模型.整数域(最大长度=15)
title=models.CharField(最大长度=50)
body=models.TextField()
我还有一个上述模型的模型表,如下所示:
类日志格式(ModelForm):
tank=forms.IntegerField(widget=forms.HiddenInput())
类元:
型号=油箱轴颈
排除=('user','ts')
我想知道如何设置坦克隐藏字段的默认值。以下是我迄今为止显示/保存表单的功能:
def addJournal(请求,id=0):
如果不是,则请求。用户。是否经过身份验证()
返回HttpResponseRedirect(“/”)
#检查他们是否拥有坦克
从django.contrib.auth.models导入用户
user=user.objects.get(pk=request.session['id'])
如果request.method==“POST”:
表单=日志表单(request.POST)
如果form.is_有效():
obj=form.save(commit=False)
#设置用户和ts
从时间导入时间
obj.ts=int(time())
obj.user=用户
obj.tank=TankProfile.objects.get(pk=form.cleaned_data['tank_id'))
#保存测试
obj.save()
其他:
表单=日志表单()
尝试:
tank=TankProfile.objects.get(user=user,id=id)
除TankProfile.DoesNotExist外:
返回HttpResponseRedirect(“/error/”)
您可以使用首字母,此处对此进行了说明
您有两个选项,在调用表单构造函数时填充值:
form=JournalForm(初始值={'tank':123})
或在表单定义中设置值:
tank=forms.IntegerField(widget=forms.HiddenInput(),initial=123)