[英]Setting super class attributes in Django Models
如果我有django模型,例如:
from django.db import models
class Super(models.Model):
field_a = models.IntegerField()
field_b = models.DateTimeField()
另一個擴展它的模型:
class Sub(Super):
pass
然后,如何在Sub
實例的構造中為field_a
和field_b
設置固定值? 舉例來說,作為Sub
構造函數的一部分,我想將field_a
設置為123
並將field_b
為datetime.now()
。
對於它的價值,我有Java背景,基本上我要尋找的是python / django等效項:
public class Super
{
int fieldA;
long fieldB;
public Super(int a, long b)
{
this.fieldA = a;
this.fieldB = b;
}
}
public class Sub extends Super
{
public Sub()
{
super(123, System.currentmillis());
}
}
不要將Java與Python混合使用-這不是Python的工作方式!
您的問題的通用示例是:
class Sup:
field = "default one"
def __init__(self, value=None):
if value != None:
self.field = value
class Sub(Sup):
def __init__(self, value=None):
if value != None:
Sup.__init__(self, value)
default = Sub()
print default.field
modified = Sub("modified one")
print modified.field
您還可以在繼承類中調用super-在此處閱讀更多
還請注意,您的qestion與Django沒有什么共通之處-如果您是我,我會在創建Django項目之前先介紹一些不錯的Python教程
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.