简体   繁体   English

将参数从 django updateview 发送到 model 表单

[英]send parameters from django updateview to model form

in function based view it's easy to pass parameters to form instances as form = FormName(user_id=..) and do other staffs, but I'm wondering how to do this in django update view It's my view在基于 function 的视图中,很容易将参数传递给表单实例作为form = FormName(user_id=..)并做其他工作人员,但我想知道如何在 django更新视图中执行此操作 这是我的观点

class MedicalrecordUpdate(UpdateView):
    model = MedicalRecords
    form_class = EditMedicalRecord
    success_url = "."
    template_name = "medicalrecord/edit_medicalrecord.html"
 
    # ?? no idea how to pass user id to EditMedicalRecord form

forms.py

class EditMedicalRecord(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        user_id = kwargs.pop("user_id")
        super(EditMedicalRecord, self).__init__(*args, **kwargs)
        ...
    ...

You need to override get_form_kwargs :您需要覆盖get_form_kwargs

class MedicalrecordUpdate(UpdateView):
    model = MedicalRecords
    form_class = EditMedicalRecord
    success_url = "."
    template_name = "medicalrecord/edit_medicalrecord.html"
    
    def get_form_kwargs(self):
        kwargs = super().get_form_kwargs()
        kwargs.update({'user_id': self.kwargs.get('user_id')}) # self.kwargs is the kwargs passed to the view
        return kwargs

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM