我正在使用django-引导-模式-表单,在使用字段形成我的模型时,它完美地工作在文档中。其中一些字段是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__'发布于 2019-10-15 13:08:57
多亏了作者UrošTrstenjak,我找到了一个解决方案。我试图从views.py中设置字段值是错误的,而应该在forms.py中完成。因此,基本上,我必须为表单编写一个init并修改字段值。Uroš指出,在级别上,我可以从š获得当前的用户,而且它确实起了作用。
https://stackoverflow.com/questions/58351846
复制相似问题