Используйте uuid. Чтобы связать это с вашей моделью, смотрите документацию Django для FileField upload_to.
Например, в вашем models.py определите следующую функцию:
import uuid
import os
def get_file_path(instance, filename):
ext = filename.split('.')[-1]
filename = "%s.%s" % (uuid.uuid4(), ext)
return os.path.join('uploads/logos', filename)
Затем, при определении вашего FileField / ImageField, укажите get_file_path
в качестве значения upload_to
.
file = models.FileField(upload_to=get_file_path,
null=True,
blank=True,
verbose_name=_(u'Contact list'))