Созданная вручную переменная STAFFLIST работает в базе данных django как список вариантов, перечисленных как PositiveSmallIntegerField.
STAFF1 = 1
STAFF2 = 2
STAFF3 = 3
STAFFLIST = (
(STAFF1, _('John Doe')),
(STAFF2, _('Lisa Beauty')),
(STAFF3, _('Harry Potter')),
)
Печать для этой переменной работает следующим образом:
>>>print(STAFFLIST[1])
(2, 'Lisa Beauty')
>>> print(STAFFLIST[1][0])
2
>>> print(STAFFLIST[1][1])
Lisa Beauty
>>>
Как сделать автоматически встроил эту переменную для l oop на основе фактического списка сотрудников? Я пробовал что-то вроде ниже, но безуспешно:
from django.contrib.auth.models import User
from django.utils.translation import gettext as _
staff = User.objects.filter(is_staff=True)
idx=0
for stf in staff:
STAFFLIST[idx] = (stf.id, _(stf.first_name + ' ' + stf.last_name))
idx=idx+1
Я получаю сообщение об ошибке:
TypeError: 'str' object does not support item assignment
Я считаю, что моя проблема - низкий уровень знаний python типов данных. И в настоящее время я пытаюсь работать с типом данных кортежа и хранить строку внутри.