覆盖继承的行为

时间:2009-07-24 18:00:59

标签: python django-models

我正在为对象使用多表继承,我需要将父对象外键引用的选择限制为仅应用子系统的规则。

from schedule.models import Event, Rule

class AirShowRule(Rule):
    """
    Inheritance of the schedule.Rule
    """
    rule_type = models.TextField(default='onAir')

class AirShow(Event):
    station = models.ForeignKey(Station)
    image = models.ImageField(upload_to='images/airshow', null=True, blank= True)
    thumb_image = models.ImageField(upload_to='images/airshow', null=True, blank= True)

现在,在管理员中,我只希望AirShowRule成为AirShow(Event)的选择。我得到的是schedule.event系统中的所有规则。

我继承自http://code.google.com/p/django-schedule/

的django-schedule

1 个答案:

答案 0 :(得分:1)

我查看了列出的类的结构,你应该添加它:

class AirShow(Event):
   ... your stuff...
   rule = models.ForeignKey(AirShowRule, null = True, blank = True,
                            verbose_name="VERBOSE NAME", help_text="HELP TEXT")

应该让所有事情都顺利(从“规则”改为“AirShowRule”

你还应该确保你完全实现 AirShowRule ,因为我认为你没有覆盖rule_type,如果你是,我认为它不会做到这一切你想要

*请参阅:models.py:23

...这一行取自models.py:103并修改了参数:verbose___name& help_text(可能是可选的,但我会留给你检查)

请注意我之前没有使用过这些模块,但这应该会让您继续前进:)