Django 如何在第一次迁移时制作与用户、身份验证、组、会话等相关的表?
Posted
技术标签:
【中文标题】Django 如何在第一次迁移时制作与用户、身份验证、组、会话等相关的表?【英文标题】:How does Django make tables relating to user,auth,group,session and so on with very first migration? 【发布时间】:2016-09-22 01:43:15 【问题描述】:Django 框架如何制作初始表?
如果你创建 Django 项目并运行 migrate,它会生成如下表。甚至认为您没有在项目中制作任何应用程序,或者没有在 models.py 中为每个应用程序编写任何代码。
auth_group
auth_group_permissions
auth_permission
auth_user
auth_user_groups
auth_user_user_permissions
django_admin_log
django_content_type
django_migrations
django_session
我了解什么是 ORM、MTV、迁移。我想弄清楚 Django 中是什么制作了这些初始表。
补充问题:
我了解我可以在 Meta 类中控制默认权限或自定义权限。如果我不设置,它会生成三个默认权限(添加、更改、删除)。
当我按照上面所说的进行迁移时,我可以在名为“auth_permission”的表中检查这些内容。有最初制作的记录
1;"Can add log entry";1;"add_logentry"
2;"Can change log entry";1;"change_logentry"
3;"Can delete log entry";1;"delete_logentry"
4;"Can add permission";2;"add_permission"
5;"Can change permission";2;"change_permission"
6;"Can delete permission";2;"delete_permission"
7;"Can add user";3;"add_user"
8;"Can change user";3;"change_user"
9;"Can delete user";3;"delete_user"
10;"Can add group";4;"add_group"
11;"Can change group";4;"change_group"
12;"Can delete group";4;"delete_group"
13;"Can add content type";5;"add_contenttype"
14;"Can change content type";5;"change_contenttype"
15;"Can delete content type";5;"delete_contenttype"
16;"Can add session";6;"add_session"
17;"Can change session";6;"change_session"
18;"Can delete session";6;"delete_session"
我该如何操作这些?例如。如果我想更改代码名称或不想设置默认权限(添加、更改、删除)怎么办?
【问题讨论】:
每个项目都默认包含一些应用。请参阅settings.py
中的INSTALLED_APPS
。
感谢您的快速回答!我可以在 settings.py 中找到您在 INSTALLED_APPS 中提到的内容。我知道如果我使用命令“python manage.py startapp name”创建新应用程序,我应该在 INSTALLED_APPS 列表中添加名称。如何在 INSTALLED_APPS 中找到 django.contrib.admin 的代码以及它如何制作默认表?
请将其他问题移到单独的问题中。没问题!
您能解释一下如何在 INSTALLED_APPS 中找到代码以及它如何制作默认表吗? 'django.contrib.admin'、'django.contrib.auth'、'django.contrib.contenttypes'、'django.contrib.sessions'、'django.contrib.messages'、'django.contrib.staticfiles'、跨度>
这些表是由于上述模块中包含的模型而创建的。搜索安装 Django 的文件夹将允许您找到代码。
【参考方案1】:
项目中默认包含一些应用程序。您可以看到这是您项目的settings.py
文件中的INSTALLED_APPS
。 auth_group
是来自django.contrib.auth
的表。
【讨论】:
谢谢!我想通了! 我在 django/contrib/auth、admin、sessions、messages 中检查了 models.py。有五个与身份验证有关的表。 auth_group auth_group_permissions auth_permission auth_user auth_user_groups auth_user_user_permissions 我预计models.py中会有五个类。我可以在 auth 文件夹下的 models.py 中找到名为“Permission”的类和名为“Group”的类。我知道 auth_group 表和 auth_permission 表是用这些类制作的。但是其他三张桌子呢???我应该研究哪一部分来了解为什么制作这三个表?(auth_user_user_permission、auth_group_permission、auth_user_group?) 我不确定我害怕。如果您提出其他问题,或许可以获得一些帮助。 我打开了新问题并得到了答案。 click this link以上是关于Django 如何在第一次迁移时制作与用户、身份验证、组、会话等相关的表?的主要内容,如果未能解决你的问题,请参考以下文章
检测用户首次使用 Django Rest Framework 进行身份验证
Django 1.8 迁移、自定义用户模型和 Postgres/MySQL 的奇怪问题
Django - 如何在使用 django-bootstrap-toolkit 登录(或)注册时验证用户身份?