为了账号安全,请及时绑定邮箱和手机立即绑定

使用 django-bootstrap-modal-forms 时如何在表单中预填充字段

使用 django-bootstrap-modal-forms 时如何在表单中预填充字段

Smart猫小萌 2022-06-22 17:48:29
我正在使用 django-bootstrap-modal-forms,当使用我的模型中的字段时,它可以完美地在文档中工作。一些字段是 ForeignKeys,它们正确显示供用户从键引用的数据库表中选择一个值,但我需要输入当前用户的用户名。我试图改变 CreateView 类处理字段的方式,但没有运气。可能是做错了什么。models.pyclass userSchoolYear(models.Model):    user_in_school = models.ForeignKey(get_user_model(), null=True, on_delete=models.CASCADE)    school = models.ForeignKey(sifMusicSchool, on_delete=models.CASCADE)    school_year = models.ForeignKey(sifSchoolYear, on_delete=models.CASCADE)    school_year_grade = models.CharField(max_length=4, choices=IZBOR_RAZREDA, default=None, null=True)    user_instrument = models.ForeignKey(instType, on_delete=models.CASCADE, default=None, null=True)    user_profesor = models.ForeignKey(profSchool, on_delete=models.CASCADE, default=None, null=True)views.pyclass SchoolYearCreateView(BSModalCreateView):    template_name = 'school_year.html'    form_class = SchoolYearForm    success_message = 'Success!'    success_url = reverse_lazy('school')    def __init__(self, *args, **kwargs):        self.form_class.user_in_school = 'johnny'  ### HERE        print(user.username)        super().__init__(*args, **kwargs)forms.pyclass SchoolYearForm(BSModalForm):    class Meta:            model = userSchoolYear            fields = '__all__'
查看完整描述

1 回答

?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

感谢作者 Uroš Trstenjak,我能够找到解决方案。我试图从views.py设置字段值是错误的,而是应该在forms.py中完成。所以,基本上我必须为表单编写一个初始化程序并更改字段值。Uroš 指出,在从级别我可以从 self.request.user 获取当前用户并且它确实有效。



查看完整回答
反对 回复 2022-06-22
  • 1 回答
  • 0 关注
  • 139 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号