I have been working on a dog adoption website which I have been builing on my local host in python using the Django framework. I have a python page which uses the pre-save function to create a unique slug for the dog whenever one is created. I have now deployed my website and this works absolutely fine. However, as of today this seems to have stopped working on my local host. I cannot find any reason why and it uses the same code as the deployed version of the system. Has anyone ever experience this before and if so does anyone have a solution as I would like to keep working and maintaining on my localhost.
class Dogs(models.Model):
dog_id = models.AutoField(primary_key=True)
dog_name = models.CharField(max_length=100)
dog_slug = models.SlugField(unique=True, null=True, blank=True)
breed = models.ForeignKey(Dog_breed, on_delete=models.CASCADE)
dogs_image = models.ImageField(upload_to='media/')
description = models.TextField(default="Description information to be added soon")
dog_illness_disability = models.BooleanField(null=True, blank=True)
can_live_with_cats = models.BooleanField(null=True, blank=True)
can_live_with_dogs = models.BooleanField(null=True, blank=True)
can_be_with_children = models.BooleanField(null=True, blank=True)
hours_excercise_required = models.IntegerField(default=0)
dog_sociability = models.IntegerField(default=0)
can_be_left_alone = models.IntegerField(default=0)
weight_kg = models.FloatField(default=0)
size_range = models.IntegerField(default=0)
affection_level = models.IntegerField(default=0)
training_level = models.IntegerField(default=0)
energy_level = models.IntegerField(default=0)
age = models.IntegerField(default=0)
age_range = models.IntegerField(default=0)
male_female = models.BooleanField(null=True, blank=True)
neutered = models.BooleanField(null=True, blank=True)
slugify.py:
def unique_slug(instance, generated_slug = None):
if generated_slug is not None:
slug = generated_slug
else:
slug = slugify(instance.dog_name)
#check if a dog with that slug already exists. If so generate a random string of numbers and characters to create a unique slug
qs = Dogs.objects.filter(dog_slug=slug).exclude(dog_id=instance.dog_id)
if qs.exists():
random_str = get_random_string(length=4)
random_num = random.randint(100_00, 500_000)
slug = f"{slug}-{random_num}-{random_str}"
return unique_slug(instance, generated_slug=slug)
return slug
def pre_save_receiver(sender, instance, *args, **kwargs):
if not instance.dog_slug:
instance.dog_slug = unique_slug(instance)
pre_save.connect(pre_save_receiver, sender = Dogs)