是否可以在 Django 中创建我自己的 createsuperuser 命令?

Is it possible to make my own createsuperuser command in django?

我正在开发一个应用程序,我在其中制作了自定义的 'User' 模型,该模型将电子邮件作为用户名,并且它依赖于另一个名为 'Company' 的模型。当 运行 命令 'python manage.py createsuperuser' 我需要 django 首先询问我公司并创建公司实例,然后询问用户模型字段,其中 'company' 是外键,然后用户可能提供公司 ID '1' 用户在创建公司对象时已经创建了

我正在尝试通过在我的应用程序中创建管理文件夹来实现上述功能,但它似乎不起作用。

谁能告诉我正确的方法。

提前致谢。

Most definitely! The createsuperuser function isn't too special; it just creates a user with the is_superuser flag 设置为 True。您可以按照第一个 link.

中的说明编写自己的方法来创建用户并设置超级用户标志,以及您想要的任何其他内容

是的,您可以,这些命令称为管理命令,您可以在文档中编写以下指南Writing custom django-admin commands

可以使用 input() 函数请求用户输入:

#/django/contrib/auth/management/commands/createsuperuser.py

from django.utils.six.moves import input
def get_input_data(self, field, message, default=None):
        """
        Override this method if you want to customize data inputs or
        validation exceptions.
        """
        raw_value = input(message)
        if default and raw_value == '':
            raw_value = default
        try:
            val = field.clean(raw_value, None)
        except exceptions.ValidationError as e:
            self.stderr.write("Error: %s" % '; '.join(e.messages))
            val = None

        return val

Django's createsuperuser 的完整源代码可在 Github 上找到。