Как добавить атрибуты в модель - PullRequest
0 голосов
/ 05 июня 2019

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...