在djang中向模型表单添加其他字段

2024-10-03 19:27:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我遇到了一个类似于this one的问题,但是上面概述的解决方案对我来说不起作用。在

视图.py:

@login_required
def contract(request):
    form = ContractorForm()
    return render(request,'portal/main_form.html',{'form': form })

表单.py

^{pr2}$

我遇到的问题是,如果我反过来改变了,phone字段在select上没有任何选项表单.py稍微一点(如下图所示),它可以正常工作

^{3}$

我的问题是我打算将用户作为参数传递给构造函数,然后获取他的电话号码并将其作为选项添加到表单中,所以我[至少认为我不能]使用有效的声明性代码。在

我很确定我在做一些愚蠢的事情(我对django还是个新手),如果你们能给我任何帮助,我将不胜感激


Tags: pyform视图表单returnrequestdef选项
1条回答
网友
1楼 · 发布于 2024-10-03 19:27:54

在视图中,您可以指定表单的phone字段的queryset

假设您的Contractor模型有一个名为phones的字段,并且假设它是从Contractor到{}的一对多,即在Phone

contractor = model.ForeignKey(Contractor, related_name='phones')

您可以将表单中的phone字段更改为ModelChoiceField,并在视图中执行类似的操作

u = request.user
form.fields['phone'].queryset = u.phones.all()

相关问题 更多 >