table 不允许在 Django 中创建和编辑
table not allow to create and edit in django
Django table 不允许编辑和创建。
编辑前 table
我改变了 is active true 并带走了用户 illyas
但是在保存后是活动的错误并占用了用户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])
您的 super().save(*args, **kwargs)
仅在 if 语句为真(如果没有 cupon_code
)时才会被调用,因此在您的情况下它永远不会被调用。无论 if 语句如何,都尝试调用它:
def save(self, *args, **kwargs):
if self.cupon_code == "":
self.cupon_code = generate_cupon()
super().save(*args, **kwargs)
Django table 不允许编辑和创建。
编辑前 table
我改变了 is active true 并带走了用户 illyas
但是在保存后是活动的错误并占用了用户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])
您的 super().save(*args, **kwargs)
仅在 if 语句为真(如果没有 cupon_code
)时才会被调用,因此在您的情况下它永远不会被调用。无论 if 语句如何,都尝试调用它:
def save(self, *args, **kwargs):
if self.cupon_code == "":
self.cupon_code = generate_cupon()
super().save(*args, **kwargs)