Я создал модель агента, которая расширяется от пользователя по умолчанию Django. Модель агента имеет атрибут Компания. Теперь, в момент создания нового Агента, компания должна завершиться автоматически, если пользователь, пытающийся добавить Агента, находится в группе Администратора. Я написал код, но все равно получаю ту же ошибку, и я не понимаю, почему.
Вот код:
models.py
class Agent(models.Model):
class Meta:
db_table = 'itw_agent'
verbose_name = 'agent'
verbose_name_plural = 'agents'
user = models.OneToOneField(User, primary_key=True, on_delete=models.CASCADE)
phone = models.IntegerField()
deleted = models.BooleanField(default=False)
company = models.ForeignKey(Company, related_name='agents', on_delete=models.CASCADE)
def save(self, *args, **kwargs):
if self.deleted:
self.user.is_active = False
self.user.save()
return super().save()
сериализаторы .py
class AgentSerializer(ModelSerializer):
user = UserSerializer()
company_name = SerializerMethodField()
class Meta:
model = Agent
fields = ['user_id', 'user', 'phone', 'company', 'company_name']
@staticmethod
def get_company_name(obj):
return obj.company.name
def create(self, validated_data):
# gr = Group.objects.get(name=AGENT)
# users = User.objects.all()
# for user in users:
# user.groups.add(gr)
user = validated_data.pop('user')
new_user = User.objects.create(**user)
new_user.set_password(user['password'])
request_user = self.context['request'].user
if ADMINISTRATOR in user.groups.all().values_list('name', flat=True):
agent = Agent.objects.create(user=new_user,
company=request_user.company,
phone=validated_data['phone'])
return agent
else:
return Response({'error'}, status=status.HTTP_401_UNAUTHORIZED)
Если я удалю условие, чтобы проверить, находится ли пользователь в группе администратора или нет, когда я пытаюсь создать агента, все работает нормально, как только я добавляю оператор if, я продолжайте получать ошибку AttributeError в / agent / 'collections.OrderedDict' объект не имеет атрибутов 'groups'
Что я делаю не так?