Python Django如何创建表(sqlite)?

Python Django如何创建表(sqlite)?,python,django,Python,Django,我正在看这个例子 当我转到sqlite shell时 sqlite> .tables auth_group classroom_subject auth_group_permissions classroom_takenquiz auth_permission classroom_user classro

我正在看这个例子

当我转到sqlite shell时

sqlite> .tables 
auth_group                       classroom_subject              
auth_group_permissions           classroom_takenquiz            
auth_permission                  classroom_user                 
classroom_answer                 classroom_user_groups          
classroom_question               classroom_user_user_permissions
classroom_quiz                   django_content_type            
classroom_student                django_migrations              
classroom_student_interests      django_session                 
classroom_studentanswer   
models.py中有8个类

class User(AbstractUser):
 is_student = models.BooleanField(default=False)
 is_teacher = models.BooleanField(default=False)

class Subject(models.Model):
class Quiz(models.Model):
class Question(models.Model):
class Answer(models.Model):
class Student(models.Model):
class TakenQuiz(models.Model):
class StudentAnswer(models.Model):
py(如上面的github链接所示)有两个表单

表单也创建表吗? 教室用户权限来自哪里

表单也创建表吗

,表单用于请求用户输入。它们可以“嵌入”在模板中,并且可以很容易地用于例如将响应解码为对象。有些表单确实直接将(更新的)值存储在模型实例中

但是表单可以完全不适用于任何模型、一个模型或同时适用于多个模型。此外,一旦表单消失,它携带的数据也消失了(当然,除非它存储在模型、文件或其他持久结构中)

教室用户权限来自哪里


这是因为您可能在
用户
用户权限
之间定义了一个
ManyToManyField
。因此,并非所有表都直接映射到模型上。有些关系需要额外的表,因为这些表不能直接存储在两个表中的一个表中。

No,
Form
s基本上与模型无关。表单只是请求用户输入的一种方便方式。表单本身并不映射到一个(或多个)模型。额外的表来自多对多关系,以及Django附带的一些默认应用程序(例如用于身份验证)。回答得很好。只有一个问题,用户类继承自抽象用户,这是否意味着许多字段?@RichardRublev:no,因为
AbstractUser
是一个抽象模型。因此,它没有表。但是,如果一个
AbstractUser
定义了一个多对多关系,那么这个关系确实会被继承,并在非抽象模型中具体化。