У объекта 'str' нет атрибута 'save' Django - PullRequest
0 голосов
/ 25 февраля 2020
class AgentForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        # agents = dashboard_userlink.objects.filter(username__in=Subquery(task_router_calldetail.objects.values('agent').distinct())).values_list('username').annotate(full_name=Concat('first_name', Value(' '),'last_name')).order_by('first_name')
        agents = dashboard_userlink.objects.values('username').distinct().values_list('username').annotate(full_name=Concat('first_name', Value(' '),'last_name')).order_by('first_name')
        for i in agents:
            agent_name = i[0]
            agent_value = i[1]
            if agent_value == ' ':
                agent_value = agent_name
                agent_value.save()
        agent_list = [('','Select')] + list(agents)
        super(AgentForm, self).__init__(*args, **kwargs)
        self.fields['agent'] = forms.ChoiceField(
            choices=agent_list )

Ответы [ 2 ]

0 голосов
/ 25 февраля 2020

Проверьте часть кода ниже

        if agent_value == ' ':
            agent_value = agent_name
            agent_value.save()

Используемая переменная agents не имеет экземпляра модели (я думаю, вы ожидаете экземпляр модели), вместо этого это просто строковое значение, поэтому agent_value.save() throwing ошибка

0 голосов
/ 25 февраля 2020

Здесь вы используете values ​​(), он возвращает словари, а не экземпляр модели. Вы можете использовать save () для сохранения экземпляра. Сохранить используется для сохранения объекта в базе данных.

Спасибо

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