I need to get database changes for a user, but only the updates of the user since the last time they logged in. I will be passing in just an email. I have looked into session data but none of that looks very helpful to me. I am new to Python and Django and I have no idea where to start, any help would be appreciated. Here are my models:
class Device(models.Model):
serial = models.CharField(max_length=16, null=False, unique=True)
publickey = models.CharField(max_length=44, null=False)
def __str__(self):
return '%d: %s' % (self.id, self.serial)
class Pairing(models.Model):
device = models.OneToOneField(Device,on_delete=models.PROTECT,blank=False, null=False)
pairingcode = models.CharField(max_length=10, blank=False, null=False, unique=True)
def __str__(self):
return '%s: %s' % (self.device_id, self.pairingcode)
class UserDevice(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.PROTECT,
null=False)
device = models.ForeignKey(Device, on_delete=models.PROTECT, null=False)
activation_date = models.DateTimeField(default=timezone.now, null=False)
friendly_name = models.CharField(max_length=20, null=True, blank=True)
is_owner = models.BooleanField(null=False, default=False)
is_admin = models.BooleanField(null=False, default=True)
is_alerts_enabled = models.BooleanField(null=False, default=True)
class Meta:
unique_together = ('user', 'device',)
def __str__(self):
return '%s => %s on %s' % (self.user.email, self.device.serial,
str(self.activation_date))
class Schedule(models.Model):
device = models.ForeignKey(Device, on_delete=models.PROTECT, null=False)
time = models.TimeField(null=False)
class Meta:
unique_together = ('device', 'time')
class PendingSchedule(models.Model):
device = models.ForeignKey(Device, on_delete=models.PROTECT, null=False)
user = models.ForeignKey(settings.AUTH_USER_MODEL,on_delete=models.PROTECT, null=False)
time = models.TimeField(null=False)
class Meta:
unique_together = ('device', 'time')
class Tray(models.Model):
device = models.ForeignKey(Device, on_delete=models.PROTECT, null=False)
slot = models.IntegerField(null=False)
full = models.BooleanField(null=False)
time = models.DateTimeField(null=False)
class Meta:
unique_together = (('device', 'slot'), ('device', 'time'))
def __str__(self):
return 'Cup %s of %s %s' % (self.slot, str(self.device), "Full" if
self.full else "Empty")
class TrayStatus(models.Model):
device = models.ForeignKey(Device, on_delete=models.PROTECT, null=False)
slot = models.IntegerField(null=False)
reason = models.TextField(blank=False, null=False)
time = models.DateTimeField(null=False)
recorded = models.DateTimeField(auto_now_add=True, null=False)
expectedTime = models.DateTimeField(null=False)
class CheckIn(models.Model):
device = models.OneToOneField(Device, on_delete=models.PROTECT, null=False)
time = models.DateTimeField(null=False)
class UserProfile(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL,on_delete=models.PROTECT, null=False)
token = models.TextField(null=False, blank=True)
first_name = models.TextField(null=True, blank=True)
last_name = models.TextField(null=True, blank=True)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With