gpt4 book ai didi

python - Django 设置默认表单值

转载 作者:IT老高 更新时间:2023-10-28 12:14:16 29 4
gpt4 key购买 nike

我有一个模型如下:

class TankJournal(models.Model):
user = models.ForeignKey(User)
tank = models.ForeignKey(TankProfile)
ts = models.IntegerField(max_length=15)
title = models.CharField(max_length=50)
body = models.TextField()

上述模型我也有一个模型形式如下:

class JournalForm(ModelForm):
tank = forms.IntegerField(widget=forms.HiddenInput())

class Meta:
model = TankJournal
exclude = ('user','ts')

我想知道如何设置该坦克隐藏字段的默认值。到目前为止,这是我显示/保存表单的功能:

def addJournal(request, id=0):
if not request.user.is_authenticated():
return HttpResponseRedirect('/')

# checking if they own the tank
from django.contrib.auth.models import User
user = User.objects.get(pk=request.session['id'])

if request.method == 'POST':
form = JournalForm(request.POST)
if form.is_valid():
obj = form.save(commit=False)

# setting the user and ts
from time import time
obj.ts = int(time())
obj.user = user

obj.tank = TankProfile.objects.get(pk=form.cleaned_data['tank_id'])

# saving the test
obj.save()

else:
form = JournalForm()

try:
tank = TankProfile.objects.get(user=user, id=id)
except TankProfile.DoesNotExist:
return HttpResponseRedirect('/error/')

最佳答案

您可以使用 Form.initial ,这是解释 here .

在调用表单构造函数时,您有两种选择填充值:

form = JournalForm(initial={'tank': 123})

或在表单定义中设置值:

tank = forms.IntegerField(widget=forms.HiddenInput(), initial=123) 

关于python - Django 设置默认表单值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/604266/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com