我是Django的新手,想知道如何在老师使用下面显示的LoginFormView登录时保存老师的电子邮件。教师登录后,他可以使用CreateClassForm创建一个类。Django从另一个表格检索数据
我有问题试图将ClassTeacherTeaches模型存储到CreateClassForm下的数据库中,当教师创建一个新类时。如何从LoginFormView中检索教师的电子邮件并存储教师的电子邮件并将自动递增的类ID(这是在教师创建新类后创建的)导入ClassTeacherTeaches模型数据库中?
models.py
class User(AbstractBaseUser):
email = models.EmailField(max_length=100, primary_key=True)
password = models.CharField(max_length=100, null=False)
full_name = models.CharField(max_length=100, default="", null=False)
USERNAME_FIELD = 'email'
def get_full_name(self):
return self.full_name
def set_full_name(self, fname):
self.full_name = fname
def get_short_name(self):
pass
def get_full_name(self):
pass
class Class(models.Model):
classid = models.AutoField(primary_key=True)
class_name = models.CharField(max_length=100, null=False)
class ClassTeacherTeaches(models.Model):
class Meta:
unique_together = (('classid', 'teacher_email'),)
classid = models.ForeignKey(Class)
teacher_email = models.ForeignKey(User)
form.py
class CreateClassForm(forms.Form):
class_name = forms.CharField(widget=forms.widgets.TextInput(attrs={'placeholder': 'Module Code'}), label='')
class Meta:
model = Class
fields = ['class_name']
def save(self, commit=True):
data = self.cleaned_data
module = Class(class_name=data['class_name'])
if commit:
module.save()
return module
class LoginFormView(FormView):
form_class = LoginForm
template_name = 'App/index.html'
success_url = '/'
def post(self, request, *args, **kwargs):
login_form = self.form_class(request.POST)
register_form = RegistrationForm()
if login_form.is_valid():
auth = EmailAuthBackend()
user = auth.authenticate(email=request.POST['email'], password=request.POST['password'])
if user is not None:
django_login(request, user)
return HttpResponseRedirect("../instructormodule")
else:
return self.render_to_response(
self.get_context_data(
login_form=login_form,
register_form=register_form
)
)