class UserForm(forms.ModelForm):
class Meta:
model = User
fields = ('username', 'email', 'first_name', 'last_name', 'password')
class StudentForm(forms.ModelForm):
class Meta:
model = Student
fields = ('phone', 'student_ID', 'photo')

class User(AbstractUser):
pass
class Student(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True)
student_ID = models.CharField(unique=True, max_length=14,
validators=[RegexValidator(regex='^.{14}$',
message='The ID needs to be 14 characters long.')])
photo = models.ImageField(upload_to='students_images')
phone = models.CharField(max_length=15, )
def __str__(self):
return self.user.username
@receiver(post_save, sender=User)
def create_user_student(sender, instance, created, **kwargs):
if created:
Student.objects.create(user=instance)
@receiver(post_save, sender=User)
def save_user_student(sender, instance, **kwargs):
instance.profile.save()

预期的输出是:
我只是不知道视图应该是什么样的。我过去想过什么,但没有什么可以保存的。我希望该学生无法注册,除非他填写所有这些字段:用户名,电子邮件,电话,student_ID等。但是,我希望学生的字段在用户由表单创建后可在数据库中编辑提交。我对此很陌生,但我真的需要完成这件事。