Jef*_*eff 7 python django default-value django-forms
我认为应该是一个简单的问题.我有一个内联模型formset,我想让一个select字段具有当前登录用户的默认选择值.在视图中,我使用Django的身份验证中间件,因此获取用户只是一个简单的访问问题request.user.
但是,我无法弄清楚的是如何将该用户设置为包含用户列表的选择框(ModelChoiceField)中的默认选定值.谁能帮我这个?
这就是诀窍。它的工作原理是设置所有“额外”表单的初始值。
formset = MyFormset(instance=myinstance)
user = request.user
for form in formset.forms:
if 'user' not in form.initial:
form.initial['user'] = user.pk
Run Code Online (Sandbox Code Playgroud)
小智 5
我不确定如何在内联表单集中处理这个问题,但以下方法适用于普通表单和模型表单:
您不能将其设置为模型定义的一部分,但您可以在表单初始化期间设置它:
def __init__(self, logged_in_user, *args, **kwargs):
super(self.__class__, self).__init__(*args, **kwargs)
self.fields['my_user_field'].initial = logged_in_user
...
form = MyForm(request.user)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11519 次 |
| 最近记录: |