Django表单设置数据
我正在提高我的英语,耐心点 我的表单是一个ModelForm,所有必要的数据都由用户发送,但我希望动态设置字段[“viagem”]和queryset中的最后一个对象 发送数据后如何设置字段Django表单设置数据,django,forms,Django,Forms,我正在提高我的英语,耐心点 我的表单是一个ModelForm,所有必要的数据都由用户发送,但我希望动态设置字段[“viagem”]和queryset中的最后一个对象 发送数据后如何设置字段 def cadastro(request): dono = Dono.objects.get(user=request.user) if request.method == "POST": form = VendaForm(dono, request.POS
def cadastro(request):
dono = Dono.objects.get(user=request.user)
if request.method == "POST":
form = VendaForm(dono, request.POST)
# Here I get the necessary data to call my qs
colocador_id = form["colocador"].value()
viagem = Colocador.objects.get(pk=colocador_id).viagem_set.last()
# I want something like this
form["viagem"] = viagem
if form.is_valid():
form.save()
else:
print('error')
print(form.errors)
else:
form = VendaForm(dono)
context = {"form": form, }
return render(request, 'dashboard/cadastro.html', context)
打印(form.errors)=>- 通过gem
- 此字段是必需的
,则不应将其添加为表单字段。因此,您可以将其从模型表单中的字段中排除,并使用:
from django.contrib.auth.decorators import login_required
from django.shortcuts import get_object_or_404
@login_required
def cadastro(request):
dono = get_object_or_404(Dono, user=request.user)
if request.method == 'POST':
form = VendaForm(dono, request.POST)
if form.is_valid():
form.instance.viagem = form.cleaned_data['colocador'].viagem_set.last()
form.save()
else:
print('error')
print(form.errors)
else:
form = VendaForm(dono)
context = {'form': form, }
return render(request, 'dashboard/cadastro.html', context)
从django.contrib.auth.decorators导入登录名\u必需
从django.shortcuts导入获取对象或404
@需要登录
def cadastro(请求):
dono=获取对象或404(dono,user=request.user)
如果request.method==“POST”:
form=VendaForm(dono,request.POST)
如果form.is_有效():
form.instance.viagem=form.cleaned_data['colocador'].viagem_set.last()
form.save()
其他:
打印('错误')
打印(表单错误)
其他:
形式=VendaForm(dono)
上下文={'form':形式,}
返回渲染(请求'dashboard/cadastro.html',上下文)
注意:使用,
然后直接使用。如果对象不存在,
例如,由于用户自己更改了URL,get\u object\u或_404(…)
将返回HTTP 404 Not Found响应,而使用
.get(…)
将导致HTTP 500服务器错误
注意:您可以将视图限制为具有
那么您不应该将其作为表单字段包含。你能分享一下表格吗?