小编aam*_*icz的帖子

django模型多态与代理继承

我的Discount模型描述了系统中所有类型折扣的常用字段.我有一些代理模型描述了用于计算总数的具体算法.基Discount类有一个名为的成员字段type,它是一个标识其类型及其相关类的字符串.

class Discount(models.Model):
  TYPE_CHOICES = (
    ('V', 'Value'),
    ('P', 'Percentage'),
  )

  name = models.CharField(max_length=32)
  code = models.CharField(max_length=32)
  quantity = models.PositiveIntegerField()
  value = models.DecimalField(max_digits=4, decimal_places=2)
  type = models.CharField(max_length=1, choices=TYPE_CHOICES)

  def __unicode__(self):
    return self.name

  def __init__(self, *args, **kwargs):
    if self.type:
      self.__class__ = getattr(sys.modules[__name__], self.type + 'Discount')
    super(Discount, self).__init__(*args, **kwargs)

class ValueDiscount(Discount):
  class Meta:
    proxy = True

  def total(self, total):
    return total - self.value
Run Code Online (Sandbox Code Playgroud)

但我继续得到AttributeError的例外,说自己没有类型.如何解决这个问题还是有另一种方法来实现这一目标?

python django proxy-classes django-models

7
推荐指数
1
解决办法
1984
查看次数

带有指向函数的指针的结构

在C结构中,我定义了一个函数指针,如下所示:

typedef struct _sequence_t
{
  const int seq[3];
  typedef void (* callbackPtr)();
} sequence_t;
Run Code Online (Sandbox Code Playgroud)

我想用以下方式全局初始化该类型的var:

sequence_t sequences[] = {
  { { 0, 1, 2 }, toggleArmament },
};
Run Code Online (Sandbox Code Playgroud)

我一直在收到错误,告诉我有太多的初始化程序.如何解决?

c struct pointers function

1
推荐指数
1
解决办法
593
查看次数

标签 统计

c ×1

django ×1

django-models ×1

function ×1

pointers ×1

proxy-classes ×1

python ×1

struct ×1