簡體   English   中英

怎么干碼? (對於python 3.6 django 1.10.5)

[英]how to dry code? (for python 3.6 django 1.10.5)

我不知道如何刪除班級中的重疊部分。 如果我們想更改日期時間格式怎么辦?

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)

營救的傳承:

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

至於關於日期時間格式的第二個問題,您將不必擔心模型中的那部分。 例如,由A的實例上created_time返回的對象將是一個Python datetime對象,可以在您的視圖中使用strftime對其進行格式化(這是格式代碼的一個很好的備忘單 ),或者在模板中使用date template標簽

並且不要忘記使用abstract = True

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

否則您將在數據庫中完成4個表,其中包括“ appname_basemodel”表

django doc模型繼承

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM