如何干燥代码?(适用于python 3.6 Django 1.10.5)

2024-06-07 19:27:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我不知道如何消除课堂上的重叠。 如果我们想改变日期时间格式呢?你知道吗

from django.db import models


class A(models.Model):
 created_time = models.DateTimeField(auto_now_add=True)
 updated_time = models.DateTimeField(auto_now=True)
class B(models.Model):
 created_time = models.DateTimeField(auto_now_add=True)
 updated_time = models.DateTimeField(auto_now=True)
class C(models.Model):
 created_time = models.DateTimeField(auto_now_add=True)
 updated_time = models.DateTimeField(auto_now=True)

Tags: fromaddtrueautomodeltimemodels格式
2条回答

拯救遗产:

class BaseModel(models.Model):
    created_time = models.DateTimeField(auto_now_add=True)
    updated_time = models.DateTimeField(auto_now=True)

class A(BaseModel):
    pass

class B(BaseModel):
    pass

class C(BaseModel):
    pass

现在ABC都有created_timeupdated_time。你知道吗

至于关于datetime格式的第二个问题,您不必担心模型中的这一部分。例如,A实例上的created_time返回的对象将是一个Python ^{}对象,它可以在视图中用^{}格式化(这里是a good cheatsheet格式代码),或者在模板中用^{} template tag格式化。你知道吗

别忘了用abstract=True

class BaseModel(models.Model): ... class Meta: abstract = True

或者您将在数据库中完成4个表,包括“appname\u basemodel”表

django doc model inheritance

相关问题 更多 >

    热门问题