首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用django引导模式窗体时如何在窗体中预填充字段

使用django引导模式窗体时如何在窗体中预填充字段
EN

Stack Overflow用户
提问于 2019-10-12 07:20:11
回答 1查看 684关注 0票数 0

我正在使用django-引导-模式-表单,在使用字段形成我的模型时,它完美地工作在文档中。其中一些字段是ForeignKeys,它们为用户正确显示,以便用户从键引用的数据库表中选择一个值,但我需要将当前用户的用户名放入其中。

我试图更改CreateView类处理字段的方式,但没有成功。可能做错了什么。

models.py

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
class SchoolYearForm(BSModalForm):

    class Meta:
            model = userSchoolYear
            fields = '__all__'
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-15 13:08:57

多亏了作者UrošTrstenjak,我找到了一个解决方案。我试图从views.py中设置字段值是错误的,而应该在forms.py中完成。因此,基本上,我必须为表单编写一个init并修改字段值。Uroš指出,在级别上,我可以从š获得当前的用户,而且它确实起了作用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58351846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档