Question

In my application there is a need to create unique URLs (one per resource) that can be shared. Something like Google Calendar Private address for a calendar. I want to know what are the best practices for this.

If it helps my application is in Django.

Please let me know if this question needs more explanation.

Was it helpful?

Solution

This should be very straightforward. In your urls.py file you want a url like this:

url(r'/resource/(?P<resource_name>\w+)', 'app.views.resource_func', name="priv-resource"),

Then you handle this in views.py with a function called:

def resource_func(request, resource_name):
    # look up resource based on unique string resource_name...

Finally, you get to use this in your templates too, using naming:

{% url priv-resource string %}

Just ensure that in your models.py:

class ResourceModel(models.Model)
    resource_name = models.CharField(max_size=somelimit, unique=True)

I might even be tempted to use a signal handler to generate this field automatically upon save of the object. See the documentation.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top