Python Django模型在字段有选择时保存稀有字符串

Python Django模型在字段有选择时保存稀有字符串,python,django,django-models,encoding,django-rest-framework,Python,Django,Django Models,Encoding,Django Rest Framework,我有以下型号: class Service(CustomModel): item = models.ForeignKey('inventory.ProductItem', on_delete=models.PROTECT, related_name='services', verbose_name=_("Artículo")) reference = models.ForeignKey('operations.Sale', on_delete=models.PROTECT, re

我有以下型号:

class Service(CustomModel):
    item = models.ForeignKey('inventory.ProductItem', on_delete=models.PROTECT, related_name='services', verbose_name=_("Artículo"))
    reference = models.ForeignKey('operations.Sale', on_delete=models.PROTECT, related_name='services', verbose_name=_("Referencia"))
    client_name = models.CharField(max_length=100, verbose_name=_("Nombre del Cliente"))
    client_phone = models.CharField(max_length=10, verbose_name=_("Teléfono del Cliente"))
    comment = models.TextField(verbose_name=_("Observaciones"))

    class Meta:
        verbose_name = _("Servicio")
        verbose_name_plural = _("Servicios")

    def __str__(self):
        return "[{}] {}/{}/{}".format(self.id, self.client_name, self.item.serial_number, self.item.product.name)

    def save(self, *args, **kwargs):
        new = False if self.id else True

        super().save(*args, **kwargs)
        if new:
            initial_status = ServiceStatus()
            initial_status.service_id = self.id
            initial_status.status = SERVICE_STATE_RECEIVED,
            initial_status.save()

SERVICE_STATE_RECEIVED = 'RECEIVED'
SERVICE_STATE_WAITING_FOR_ASSESSMENT = 'WAITING_FOR_ASSESSMENT'
SERVICE_STATE_WARRANTY = 'WARRANTY'
SERVICE_STATE_QUOTED = 'QUOTED'
SERVICE_STATE_SCHEDULED = 'SCHEDULED'
SERVICE_STATE_REPAIRING = 'REPAIRING'
SERVICE_STATE_DOWN = 'DOWN'
SERVICE_STATE_FINISHED = 'FINISHED'
SERVICE_STATE_DELIVERED = 'DELIVERED'
SERVICE_STATE_CHOICES = (
    (SERVICE_STATE_RECEIVED, _("Recibido")),
    (SERVICE_STATE_WAITING_FOR_ASSESSMENT, _("En Evaluación")),
    (SERVICE_STATE_WARRANTY, _("En Garantía")),
    (SERVICE_STATE_QUOTED, _("Cotizado")),
    (SERVICE_STATE_SCHEDULED, _("Programado")),
    (SERVICE_STATE_REPAIRING, _("En Reparación")),
    (SERVICE_STATE_DOWN, _("Baja")),
    (SERVICE_STATE_FINISHED, _("Servicio Concluido")),
    (SERVICE_STATE_DELIVERED, _("Entregado")),
)

class ServiceStatus(CustomModel):
    service = models.ForeignKey(Service, on_delete=models.PROTECT, related_name='status', verbose_name=_("Servicio"))
    status = models.CharField(max_length=25, choices=SERVICE_STATE_CHOICES, verbose_name=_("Estatus"))
    timestamp = models.DateTimeField(auto_now=True, verbose_name=_("Fecha y Hora"))
    comment = models.TextField(null=True, blank=True, verbose_name=_("Comentarios"))

    update = False

    class Meta:
        verbose_name = _("Estado del Servicio")
        verbose_name_plural = _("Estados de los Servicios")

    def __str__(self):
        return "[{}] {}/{}/{}".format(self.id, self.service.id, self.status, self.timestamp)
如您所见,创建
服务
实例时,它会自动创建
服务状态
的实例,但字段
服务状态。状态
会获取wefgdsird值:


我相信Django无法管理编码,但我找不到我做错了什么。

由于后面的逗号,您正在分配一个元组

initial_status.status = SERVICE_STATE_RECEIVED,
做:


由于后面的逗号,您正在分配一个元组

initial_status.status = SERVICE_STATE_RECEIVED,
做: