Django TypeError:预期的字符串或类似字节的对象

时间:2020-10-14 14:22:53

标签: django django-models django-rest-framework

我不知道为什么首先收到此错误,然后检查整个代码三次

我正在从Django View调用信号以在模型中创建一个对象以进行分析。

models.py

RECEIVER_REQUEST_TYPE = (
    ('ABOX', 'Android Bounding Box'),
    ('ENTR', 'Web Bounding Box'),
)

class BaseAnalytics(models.Model):
    """Common filds for all the tables"""
​
    ip_address      = models.CharField(max_length=220, blank=True, null=True)
    content_type    = models.ForeignKey(
        "contenttypes.ContentType", on_delete=models.CASCADE, blank=True, null=True)
    timestamp       = models.DateTimeField(auto_now_add=True)
    # status          = models.IntegerField(blank=True, null=True)
    execution_time  = models.TimeField(verbose_name='Time Taken for each query to execute')
​
class ReceiverAnalytics(BaseAnalytics):
    """receiver analytics"""
​
    longitude      = models.FloatField(blank=True, null=True)
    latitude       = models.FloatField(blank=True, null=True)
    request_type   = models.CharField(max_length=4, choices = RECEIVER_REQUEST_TYPE)
​
    def __str__(self):
        return str(self.id)
​
    class Meta:
        verbose_name = 'Receiver Analytics'
        verbose_name_plural = 'Receiver Analytics'
​
# SIGNAL
def receiverAnalyticsSignal(sender, request, request_type, time,
                                longitude, latitude ,*args, **kwargs):
    pdb.set_trace()
    c_type = ContentType.objects.get_for_model(sender)
    new_call_obj = ReceiverAnalytics.objects.create(
        ip_address     = get_client_ip(request),
        content_type   = c_type,
        request_type   = request_type,
        longitude      = longitude,
        latitude       = latitude,
        execution_time = time,
    )
    print(new_call_obj)
​
object_viewed_signal.connect(receiverAnalyticsSignal)

Signal.py

from django.dispatch import Signal
​
object_viewed_signal = Signal(providing_args=['request'])

Views.py

object_viewed_signal.send(
    Receive, request_type='NRBY', longitude=longitude,
    latitude=latitude, time=total_time, request=request
)

以下是字段的类型

Receive > model_name mark
NRBY > String enum
longitude, latitude, time > float fields

这是我得到的错误:

TypeError:预期的字符串或类似字节的对象

0 个答案:

没有答案