【发布时间】:2016-10-30 11:39:52
【问题描述】:
我正在使用 ModelChoiceField 在我的表单中选择发票提供商。在当前情况下,我将所有 Providers 返回到查询集。
但我应该只返回由签名用户创建的提供者。 Provider 有一个名为 user 的 ForeignKey 字段。
这是我的表格:
class InvoiceCreationForm(forms.Form):
# ...
provider = forms.ModelChoiceField(
label='Provider',
required=False,
queryset=Provider.objects.all(),
widget=forms.Select(attrs={
'name': 'provider',
'class': 'form-control',
'id': 'input-invoice-provider',
})
)
我需要像这样过滤对象:
Provider.objects.filter(user=current_user)
如何获取已签名的用户?或者如何在视图之外获取 request 对象?我尝试从表单的__init__ 方法获取当前用户,然后将其设置为self.user。但我不能在像self.user 这样的查询中使用它。
【问题讨论】:
-
请显示您尝试过的代码。
-
@DanielRoseman 这个答案:stackoverflow.com/a/7300076/4471283
标签: python django django-forms django-authentication