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

我正在使用 django-bootstrap-modal-forms,当使用我的模型中的字段时,它可以完美地在文档中工作。一些字段是 ForeignKeys,它们正确显示供用户从键引用的数据库表中选择一个值,但我需要输入当前用户的用户名。


我试图改变 CreateView 类处理字段的方式,但没有运气。可能是做错了什么。


models.py


class 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.py


class 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.py


class SchoolYearForm(BSModalForm):


    class Meta:

            model = userSchoolYear

            fields = '__all__'


Smart猫小萌
浏览 140回答 1
1回答

哆啦的时光机

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

相关分类

Python