[英]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
現在, A
, B
和C
都具有created_time
和updated_time
。
至於關於日期時間格式的第二個問題,您將不必擔心模型中的那部分。 例如,由A
的實例上created_time
返回的對象將是一個Python datetime
對象,可以在您的視圖中使用strftime
對其進行格式化(這是格式代碼的一個很好的備忘單 ),或者在模板中使用date
template標簽 。
並且不要忘記使用abstract = True
class BaseModel(models.Model): ... class Meta: abstract = True
否則您將在數據庫中完成4個表,其中包括“ appname_basemodel”表
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.