Python Django如何创建表(sqlite)?
我正在看这个例子 当我转到sqlite shell时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> .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
定义了一个多对多关系,那么这个关系确实会被继承,并在非抽象模型中具体化。