【发布时间】:2011-04-09 12:15:28
【问题描述】:
当像这样使用模型类时:
class MyModel(models.Model):
def __init__(self, *args, **kwargs):
self.myfield = models.Field()
super(MyModel, self).__init__(*args, **kwargs)
不考虑myfield(在管理表单中,保存对象时...)
但如果我这样声明:
class MyModel(models.Model):
myfield = models.Field()
效果很好。
为什么?
编辑
我认为我有一个很好的理由:我有一个抽象类 UploadItem,它定义了一个名为 file 的字段,如下所示:self.file = models.FileField(upload_to=upload_to) 如您所见,在每个子类中,我必须使用适当的 upload_to 变量调用父 init 方法(对视频模型说“视频”)。所以我不能以正常的方式做到这一点。
【问题讨论】: