如何添加到模型的属性

时间:2019-06-05 16:55:20

标签: python django

我有一个模型,我想在将其作为json发送之前进行一些处理并附加一个属性。我试图这样修改: client = Client.objects.all()然后 client.newAttribute 但这不起作用,因为它没有通过我的json传递: return json.dumps(clients, cls=ExtendedEncoder) 其中clientsclient的列表,而ExtendedEncoder

class ExtendedEncoder(DjangoJSONEncoder):
    def default(self, o):
        if isinstance(o, Model):
            return model_to_dict(o)
        return super().default(o)

我目前正在尝试在模型所在的地方进行新的尝试

class Client(models.Model):
    my_id = models.CharField(max_length=500, unique=True)
    name = models.CharField(max_length=500)
    last_update = models.DateField(null=True, blank=True)
    rating = models.DecimalField(max_digits=3, decimal_places=1, null=True, blank=True)
    friend_1 = models.ForeignKey(
        "self",
        related_name="friend_1a",
        on_delete=models.CASCADE,
        to_field="my_id",
        null=True,
        blank=True,
    )
    friend_2 = models.ForeignKey(
        "self",
        related_name="friend_2a",
        on_delete=models.CASCADE,
        to_field="my_id",
        null=True,
        blank=True,
    )

    def _get_time_since_last_update(self):
        today = date.today()
        if self.last_update is None:
            self.last_update = today
        return str((today - self.last_update).days)


    time_since_last_update = property(_get_time_since_last_update)

但这仍然没有在我的json中返回。

0 个答案:

没有答案