表格不允许在 django 中创建和编辑

时间:2021-05-31 06:07:46

标签: django django-models django-views django-forms django-templates

Django 表不允许编辑和创建。

编辑表格之前 enter image description here

我更改为 active true 并使用了用户 Illyas enter image description here

但是在保存后是活动的 false 并且被占用的用户 None .... 为什么??? enter image description here

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])

1 个答案:

答案 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)

相关问题