loko/streetup/common/private_files/helpers.py
2026-07-22 14:48:40 +02:00

16 lines
589 B
Python

# common/private_files/helpers.py
from django.urls import reverse
from django.core import signing
def build_private_url(app_label: str, model_name: str, pk: int | str, field_name: str, *, sign: bool = True) -> str:
params = f"?app={app_label}&model={model_name}&pk={pk}&field={field_name}"
if sign:
token = signing.dumps(
{"app": app_label, "model": model_name, "pk": pk, "field": field_name},
salt="private-files",
compress=True,
)
params += f"&token={token}"
return reverse("private_file_download") + params