我正在制作一个应用程序,其中我制作了自定义'User'
模型,该模型将电子邮件作为用户名,并且依赖于另一个名为'Company'
的模型。运行命令'python manage.py createsuperuser'
时,我需要django首先要求我公司并创建公司实例,而不是询问用户模型字段,其中'company'
是外键,然后用户可能提供公司ID {{1}用户在制作公司对象时已经创建的。
我正在尝试通过在我的应用中创建管理文件夹来实现上述功能,但它似乎无法正常工作。
任何人都可以告诉我正确的做法。
先谢谢。
答案 0 :(得分:4)
Most definitely! createsuperuser
功能并不太特别;它只是创建一个is_superuser
flag设置为True
的用户。您可以按照第一个链接中的说明编写自己创建用户的方法,并设置超级用户标志以及您想要的任何其他内容。
答案 1 :(得分:0)
是的,您可以,这些命令称为管理命令,您可以在文档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上找到。