Django如何创建表(sqlite)?

时间:2018-06-21 14:07:42

标签: python django

我正在看这个例子 django-multiple-users

当我进入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):

Forms.py(如上github链接所示)具有几种形式。

表格也创建表格吗? 课堂用户权限来自何处?

1 个答案:

答案 0 :(得分:2)

  

表单也创建表吗?

,表格用于询问用户输入。它们可以“嵌入”在模板中,并且可以轻松地用于例如将响应解码为对象。实际上,某些表单确实将(更新的)值存储在模型实例中。

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

  

classical_user_user_permissions来自哪里?

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