我需要为Django中的网站制作一个“投资组合”。我不是要包含图片库和网站链接的投资组合。
我将模型设置为:
class PortfolioObject(models.Model):
types = (
(0,"gallery"),
(1, "link")
)
name = models.CharField(max_length=100)
oType = models.IntegerField(choices=types, default=0)
class Meta():
abstract = False
class GalleryObject(PortfolioObject):
picture = models.FileField(blank=True)
oType = 0
class LinkObject(PortfolioObject):
link = models.URLField(blank=True)
oType = 1
正如您所看到的,我希望PortfolioObject具有“类型”,具体取决于它的类型。但是这不起作用,oType
上的LinkObjects
属性仍为0。
如何在仍然方便使用PortfolioObject.objects.filter(someField=someFilter)
的同时正确索引投资组合对象的类型?
答案 0 :(得分:0)
您可以覆盖init:
class GalleryObject(PortfolioObject):
picture = models.FileField(blank=True)
def __init__(self, *args, **kwargs):
super(GalleryObject, self).__init__(*args, **kwargs)
self.oType = 0
class Meta:
proxy = True