我正在创建一个优惠券发生器,用于发放“如果使用此代码注册,可免费获得10美元的服务”。用户基数非常小,并且不太可能一次传出十个以上的优惠券。Django管理:TabularInline中的随机密钥重复,而不是随机
创建新的营销活动时,管理员会在TabularInline中获得五张优惠券,并可通过“添加其他优惠券”按钮创建更多优惠券。但是优惠券6和更高优惠券全都具有与优惠券5完全相同的随机码;它看起来好像Django实际上并不是从服务器请求一个新的示例对象,而是复制了它看到的最后一个对象。
的代码要做到这一点:
class Coupon(models.Model):
campaign = models.ForeignKey(Campaign)
code = models.CharField(max_length = 32, blank=False, null=False, default=generate_code)
redeemed_by = models.ForeignKey(User, null = True, blank = True)
凡generate_code()
是一个功能,那么,生成一个随机字符串。在我看来,Django的管理员应该遵守其自己的Field类的default
设置,并且它对于由管理服务器端生成的第一个第,而不是由客户端请求生成的第一个。
有没有办法让Django在服务器上创建对象并获取它们?我是否必须破解自己的页面才能创建内联代码?还是有更聪明的方法去解决这个问题?
这些随机优惠券的声音是由您自己编写的而不是由Django编写的自定义代码创建的。为什么要使用内联?除随机生成的优惠券之外是否还有其他功能?也许你应该考虑创建一个自定义的ajax函数来创建并显示新生成的优惠券。 – 2012-03-05 19:49:24
@ dan-klasson:我更新了问题以显示故障。 Django的管理员不正确地遵守'models.Field'的'default'参数。我试图弄清楚我在这里做错了什么。 – 2012-03-05 19:56:46