首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >django rest框架:< Objectname : Objectname object>不能被JSON序列化

django rest框架:< Objectname : Objectname object>不能被JSON序列化
EN

Stack Overflow用户
提问于 2017-03-07 07:43:57
回答 2查看 368关注 0票数 0

我有一个客户模型和一个事件模型。事件模型指的是客户。顾客有很多活动。我的要求是,当我得到客户,我需要客户的最新事件对象。当我调用customer时,它会显示以下错误,

TypeError at /api/v1/customer 不能将JSON序列化

我的模特

代码语言:javascript
复制
class Customer(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    name = models.CharField(max_length=20, unique=True)
    #some more fields to go
    def __str__(self):
        return str(self.name)


    def latest_event_name(self):
        """Return latest event """

        latest_event = self.customer_events.order_by('-event_date').last()
        return latest_event if latest_event else None



class Event(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    event_name = models.CharField(max_length=200, unique=True)

    customer = models.ForeignKey(customer_models.Customer, db_index=True, on_delete=models.SET_NULL,
                                 related_name='customer_events', null=True)
   #some more fields to go

串行器

代码语言:javascript
复制
class CustomerSerializer(serializers.ModelSerializer):
    latest_event_name = serializers.ReadOnlyField()

    class Meta:
        model = Customer
        fields = '__all__'
EN

回答 2

Stack Overflow用户

发布于 2017-03-07 08:34:02

中的事件。

代码语言:javascript
复制
def latest_event_name(self): ...

您必须为事件模型创建一个序列化程序,因为该方法返回模型事件的一个实例。

我认为,如果您只是将事件的id作为str返回,您就不会遇到这个问题,因此您就不必为事件模型创建一个均衡器。

票数 2
EN

Stack Overflow用户

发布于 2017-03-07 10:25:50

无论如何,现在通过下面的方法解决了这个问题。

代码语言:javascript
复制
def latest_event(self):
latest_event = self.customer_events.order_by('-event_date').last()
eventDict = None
if latest_event:
    eventDict = {"event_id": latest_event.id, "event_name": latest_event.event_name}
return eventDict

不确定这是否是正确的方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42642842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档