Model.create不保存到DB

时间:2016-06-23 13:50:54

标签: python django

我正在尝试将模型实例保存到数据库中,如本文所述:

Promo类创建方法:

@classmethod
def create(cls, discount_money):
    promo = cls(discount_money=discount_money)

    return promo
@staticmethod
def create_promo():
    promo = Promo.create(config.SUBSCRIPTION_DISCOUNT)
    print promo # => DHLI67LZ80T7AU1O
    print promo.discount_money # => 20000

self.create_promo()

但我的数据库中没有任何内容。我错过了什么?

2 个答案:

答案 0 :(得分:2)

这两种方法都没有调用save,因此数据库中不会反映任何内容。

您需要确保至少在其中一种方法中调用save。可能在create方法中更有意义。

@classmethod
def create(cls, discount_money):
    promo = cls(discount_money=discount_money)
    promo.save()

    return promo

答案 1 :(得分:1)

正如Django docs中提到的那样:

  

请注意,实例化模型绝不会触及您的数据库;对于   那,你需要保存()。

因此,您需要在代码中添加promo.save()

@classmethod def create(cls, discount_money):
    promo = cls(discount_money=discount_money)
    promo.save()
    return promo