Как использовать (или открывать) аргументы в python, когда одни входы названы, а другие нет? - PullRequest
0 голосов
/ 29 сентября 2019

Я хочу сделать несколько пользователей, используя метод create_superuser.В настоящее время я делаю это:

CustomUser.objects.create_superuser(
    'amin@gmail.com',
    'password',
    first_name='Amin',
    )

Но я хочу создать более одного пользователя.Я не хотел давать first_name, я бы сделал это:

a=[['user1@gmail.com', 'pass'], ['user2@gmail.com', 'pass'],..., ['user100@gmail.com', 'pass'], ]
[CustomUser.objects.create_superuser(*user) for user in a]

Но в моем случае, когда у меня есть третий вход, для которого мне нужно поставить имя 'first_name', как я могу это сделать?что я делал выше?

Ответы [ 2 ]

2 голосов
/ 29 сентября 2019

Использовать только ключевые аргументы:

users = [
    dict(
        email='user1@gmail.com',
        password='password',
    ),
    dict(
        email='amin@gmail.com',
        password='pass',
        first_name='Amin',
    ),
]

for user in users:
    CustomUser.objects.create_superuser(**user)
0 голосов
/ 29 сентября 2019

Если вам действительно нужно смешивать позиционные и ключевые аргументы в цикле:

users = [
    (
        ('user1@gmail.com', 'password'),
        dict(),
    ),
    (
        ('amin@gmail.com', 'pass'),
        dict(first_name='Amin'),
    ),
]

for args, kwargs in users:
    CustomUser.objects.create_superuser(*args, **kwargs)

Лично я считаю, что это выглядит ужасно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...