python-3.x - 如何从表单中捕获 first_name?
问题描述
我如何才能将 first_name 放入上下文中。
class NewTeacherView(LoginRequiredMixin,CreateView):
model = TeacherData
form_class = TeachersForm
template_name = 'new_teacher.html'
#template_name = 'new_teacher.html'
success_url = reverse_lazy('teachers')
def get_context_data(self, *args, **kwargs):
context = super(NewTeacherView,self).get_context_data(*args, **kwargs)
context["user"] = User.objects.create_user(
username=???????
password=???????)
return context
表格如下
class TeachersForm(forms.ModelForm):
class Meta:
model = TeacherData
fields = ("first_name","last_name")
widgets = {
"first_name":forms.TextInput(attrs={"class":'form-control'}),
"last_name":forms.TextInput(attrs={"class":'form-control'}),
}
我的兴趣和愿望是同时first_name
使用username
password
解决方案
如果表单有效并保存对象,则不应尝试覆盖get_context_data
,而是应覆盖form_valid
调用:
class NewTeacherView(LoginRequiredMixin,CreateView):
model = TeacherData
form_class = TeachersForm
template_name = 'new_teacher.html'
#template_name = 'new_teacher.html'
success_url = reverse_lazy('teachers')
def form_valid(self, form):
response = super().form_valid(form)
teacher_data = self.object
first_name = teacher_data.first_name
# Best normalize this using:
# first_name = User.normalize_username(first_name)
# Also first names are not guaranteed to be unique, you should write some code for that case
user = User.objects.create_user(username=first_name, password=first_name)
return response
推荐阅读
- ios - 使用 SwiftUI 时在拆分视图上接收应用程序之间焦点更改的通知
- c# - 转换 ForEach 字典值 If 条件并将键添加到列表
- c++ - 在其定义中使用类模板
- python - 根据数据框列之间的条件生成列名字典
- avro - 将模式注册表与 Avro SpecificRecord 一起使用是否有意义?
- javascript - Babel-js 将块语句转换为箭头函数
- python - Python Pandas Dataframe 根据同一列中的前一行值计算新行值
- javascript - 无穷大 if 检查函数 javascript
- android - ImageSpan 不显示图像
- c++ - 如何缩短声明命名常量?