41 lines
1.0 KiB
Python
41 lines
1.0 KiB
Python
from typing import Any
|
|
|
|
from django.core.cache import cache
|
|
from django.db import models
|
|
|
|
from apps.advertiser.models import Advertiser
|
|
from apps.client.models import Client
|
|
from apps.core.models import BaseModel
|
|
|
|
|
|
class Mlscore(BaseModel):
|
|
advertiser = models.ForeignKey(
|
|
Advertiser,
|
|
on_delete=models.CASCADE,
|
|
related_name="mlscores",
|
|
)
|
|
client = models.ForeignKey(
|
|
Client,
|
|
on_delete=models.CASCADE,
|
|
related_name="mlscores",
|
|
)
|
|
score = models.PositiveIntegerField()
|
|
|
|
def __str__(self) -> str:
|
|
return f"{self.advertiser.name} | {self.client.login}"
|
|
|
|
def save(self, *args: Any, **kwargs: Any) -> None:
|
|
super().save(*args, **kwargs)
|
|
|
|
self.setup_cache()
|
|
|
|
def setup_cache(self) -> None:
|
|
cache.add(f"mlscore_{self.client_id}_{self.advertiser_id}", self.score)
|
|
cache.set(f"mlscore_{self.client_id}_{self.advertiser_id}", self.score)
|
|
|
|
class Meta:
|
|
unique_together = (
|
|
"advertiser",
|
|
"client",
|
|
)
|