python - 如何将变量传递给 Django 表单?
问题描述
我一直在 stackoverflow 上阅读很多这样的问题,但似乎没有一个有效。我想做的就是制作一个过滤表单下拉菜单。我不知道该怎么做。我得到 main 没有定义的错误......但我确定那是因为它没有初始化或什么?我很困惑哈哈。
我的表单代码如下所示:
class AssignForm(ModelForm):
class Meta():
model = Address
fields = ['overseer','publisher', 'status']
def __init__(self, *args, **kwargs,):
super(AssignForm, self).__init__(*args, **kwargs)
self.fields['publisher'].queryset = Publisher.objects.filter(service_group=main)
这是我的观点:
def assignment(request, pk_a):
assign = Address.objects.get(id=pk_a)
num = request.user.overseer.publisher_set.first()
main = num.service_group.id
print(main)
我想在我的表单下拉列表中使用变量:main,这样我就可以限制相对于监督者的下拉列表。如何实现?谢谢!
form = AssignForm(main, request.POST, instance=assign)
context = {'form':form,}
return render(request, 'sms/assign.html', context )
解决方案
将您的表格更改为
class AssignForm(ModelForm):
class Meta():
model = Address
fields = ['overseer','publisher', 'status']
def __init__(self, main, *args, **kwargs,):
super(AssignForm, self).__init__(*args, **kwargs)
self.fields['publisher'].queryset = Publisher.objects.filter(service_group=main)
并将视图中的 Form 实例化更改为
form = AssignForm(main, request.POST, instance=assign)
推荐阅读
- python - 如何对第 1 列中具有相同值的两个或多个 csv 文件的行求和?
- java - 如何在java中的arraylist中的单词中间添加字符?
- java - 创建一个具有首选名称空间前缀和一个没有前缀 Java 的名称空间的 xml
- c# - 取消初始化后相机拉伸
- jira - 我们如何将 Jira 中的标签限制到每个项目?
- visual-studio-code - 为 Visual Studio Code 快速搜索 (ctrl+f) 输入选择的文本背景颜色
- javascript - asp.net webforms中Jquery Datatable中的分页
- javascript - 恢复单词数组中缺失的元音
- r - 如何在 RShiny 应用服务器中自动折叠代码(反应、渲染等)
- node.js - SyntaxError: Unexpected token - 在 JSON.parse 的位置 0 的 JSON (
)