怎么干代码? (对于python 3.6 django 1.10.5)

时间:2017-01-09 02:31:52

标签: python django

我不知道如何删除班级中的重叠。 如果我们想改变日期时间格式怎么办?

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)

2 个答案:

答案 0 :(得分: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

关于日期时间格式的第二个问题,您不必担心模型中的那个部分。 created_time实例在A的实例上返回的对象将是一个Python datetime对象,可以在您的视图中使用strftime格式化(这里是{{3 (对于格式代码),或模板中的a good cheatsheet

答案 1 :(得分:1)

并且不要忘记使用abstract = True

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

或者您将在数据库中完成4个表,包括'appname_basemodel'表

django doc model inheritance