В save проверяешь является ли сохраненый в инит статус запрещеным
class Orders(models.Model):
""" Orders """
status = models.CharField(choices=ORDER_STATUSES, null=True, max_length=150, default='accepted')
_initial_status = None
def init(self):
self._initial_status = status
def save(self, .....):
if self._initial_status == 'reject':
raise ValidationError("Object cant be eddited any more")
super().save(*args, **kwargs)