我想在Django App的形式中获取已登录用户的名称,并将结果用作表单字段的输入。
我该怎么做?我的代码应该怎么办? 我尝试了所有的解决方案。
这是我的代码
Views.py
form = ProductForm()
Admin.py
class AccessLevelInline(admin.StackedInline):
model = AccessLevel
can_delete = False
verbose_name_plural = 'accesslevel'
# Define a new User admin
class UserAdmin(BaseUserAdmin):
inlines = (AccessLevelInline, )
# Re-register UserAdmin
admin.site.unregister(User)
admin.site.register(User, UserAdmin)
Form.py
user_name = HOW DO I ACCESS THE USER NAME HERE?
u = User.objects.get(username=user_name).accesslevel.prod.split(',')
v=(('---------','---------'),)
for l in u:
v=v+((l.lstrip(),l.lstrip()),)
class ProductForm(forms.Form):
model = Manufact
Prod = forms.ChoiceField(choices=v)
答案 0 :(得分:0)
在您的视图中,您可以访问包含当前用户的request
对象。你可以这样得到:request.user
。因此,您可以在初始化时将其传递给表单,以便在需要时可以访问它。
form=ProductForm(request.user)
答案 1 :(得分:0)
它不会让我评论,因为我没有足够的声誉。
扩大Stepan的答案。
在views.py
:
form=ProductFrom(request.user)
在forms.py
:
# Declare __init__ function
def __init__(self, user_name):
self.u = User.objects.get(username=user_name).accesslevel.prod.split(',')
# DO the rest that you need here.