Django 表不允许编辑和创建。
我更改为 active true 并使用了用户 Illyas
但是在保存后是活动的 false 并且被占用的用户 None .... 为什么???
models.py
class SignupCupon(models.Model):
offer_for = models.CharField(max_length=20, default="Referral offer")
cupon_code = models.CharField(max_length=50, unique=True)
offer_price = models.PositiveIntegerField()
is_active = models.BooleanField(default=False)
which_user = models.OneToOneField(User, related_name="which_user_signup", on_delete=models.CASCADE, null=True, blank=True)
taken_user = models.ForeignKey(User, related_name="signup_cupon_taken_user", on_delete=models.CASCADE, null=True, blank=True)
create_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return "User: " + str(self.which_user) + " - Cupon: " + str(self.cupon_code)
def save(self, *args, **kwargs):
if self.cupon_code == "":
self.cupon_code = generate_cupon()
super().save(*args, **kwargs)
admin.py
from django.contrib import admin
from .models import CategoryOffer, ProductOffer, CuponOffer, SignupCupon, ReferralCupon
admin.site.register([CategoryOffer, ProductOffer, CuponOffer, SignupCupon, ReferralCupon])
答案 0 :(得分:1)
您的 super().save(*args, **kwargs)
只有在 if 语句为 True(如果没有 cupon_code
)时才会被调用,因此在您的情况下它永远不会被调用。不管 if 语句如何,尝试调用它:
def save(self, *args, **kwargs):
if self.cupon_code == "":
self.cupon_code = generate_cupon()
super().save(*args, **kwargs)