I was thinking something like this:
url = models.CharField(max_length=2047)
Is there a solution that would be more efficient for the ORM / SQL?
You can use a URLField but it's just a subclass of CharField and thus defaults to 200 characters.
However IE8 & 9's limit for URL length is 2083 chars, Firefox, Opera, and Safari can handle at least 80,000 chars. I doubt you'll ever see a URL that long without a bunch of get data (like &whatever=1&whatelse=2...
)
Use URLField (or IPAddressField) for this. It is transformed to string by Django. URLField