[英]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.