У меня есть модель, в которой я хочу выполнить некоторую обработку и добавить атрибут, прежде чем отправлять его как 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.