【发布时间】:2021-03-22 07:28:54
【问题描述】:
我一直在研究以下模型
class Member(BaseModel):
user = models.OneToOneField(User, on_delete=models.CASCADE)
refer_code = models.CharField(
max_length=20,
unique=True,
blank=True,
null=True
)
并且将refer_code设置为在调用save方法时自动生成,即在创建期间(而不是在更新期间)这是我的干净方法和保存方法。
def clean(self):
if not self.user.is_member:
raise DjangoValidationError({'user': _('User must member')})
def save(self, *args, **kwargs):
if self._state.adding:
self.refer_code = self.user.username
super(Member, self).save(*args, **kwargs)
post_save.connect(save, sender=User)
我按照 youtube 上的某些教程进行操作,但出现以下错误
save() missing 1 required positional argument: 'self'
我希望在创建过程中触发 post_save 信号,所以我尝试 created = True 但出现错误。
【问题讨论】: