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