سلام وقت بخیر
ما برای هر مدل ترجیحا زمان ایجاد و زمان ویرایش رو اضافه میکنیم و این برای همه مدلها تکرار میشه آیا بهتر نیست که یک کلاس با نام BaseModel بسازیم و این فیلدها رو بهش اضافه کنیم و سایر مدلها از اون ارث ببرن اینطوری حجم کد کمتر میشه
کلاس پدر
class ModelsBase(models.Model):
create_time = models.DateTimeField(auto_now_add=True)
modified_time = models.DateTimeField(auto_now=True)
کلاس فرزند:
class Transaction(ModelsBase):
CHARGE = 1
PURCHASE = 2
TRANSFER = 3
TRANSACTION_TYPE_CHOICES = (
(CHARGE, 'Charge'),
(PURCHASE, 'Purchase'),
(TRANSFER, 'Transfer'),
)
user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='transaction')
transaction_type = models.PositiveIntegerField(choices=TRANSACTION_TYPE_CHOICES, default=CHARGE)
amount = models.BigIntegerField(null=False, blank=False)
کلاس فرزند:
class UserBalance(ModelsBase):
user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='balance')
balance= models.BigIntegerField(null=False, blank=False)