Ich bin neu bei Django und möchte wissen, wie ich die E-Mail des Lehrers speichern kann, wenn sich der Lehrer mit der unten gezeigten LoginFormView anmeldet. Nachdem sich der Lehrer angemeldet hat, kann er mithilfe von CreateClassForm eine Klasse erstellen.Django Daten von einem anderen Formular abrufen
Ich habe Probleme beim Speichern von ClassTeacherTeaches-Modell in der Datenbank unter CreateClassForm, wenn der Lehrer eine neue Klasse erstellt. Wie kann ich die E-Mail des Lehrers von LoginFormView abrufen und die E-Mail-Adresse des Lehrers speichern und die automatisch inkrementierte Klassen-ID (diese wird erstellt, sobald der Lehrer eine neue Klasse erstellt) in die ClassTeacherTeaches-Modelldatenbank aufnehmen?
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
)
)