Snippet List
This view snippet is a helper for implementing file download handlers. There is a standard to encode Unicode filenames properly, but many browsers have different protocols.
The default encoding is assumed to be UTF-8.
- view
- attachment
- send-file
- download-file
- mimetype
Although many people have already posted cookieless session middlewares and related stuffs, but this one is just for only required views.
You can use this as a view decorator like:
@session_from_http_params
@login_required
def your_view(request):
...
This is very useful for those who use SWFUpload. Flash has a bug with sending cookies properly, so SWFUpload offers an workaround -- session key as a POST parameter.
- session
- decorator
- cookieless
We currently use two-level tuples to specify choices of a field in models or forms.
But, because it has only (value, verbose name) pair, the readability is bad whenever we indicate a specific choice value in our Python codes.
So I made a small class that does "magic" for this: A Named Enumeration.
Instead of `myobj.status == 0`, use `myobj.status == STATUS.UNREVIEWED`, for example.
- choices
- model
- orm
- enumeration
- enum
If you use decorators to views, it will greatly improve readability and extensibility of your code. I'm using a couple of decorators like this to reduce complexity and redundancy in my view codes.
`wraps` from Python 2.5's standard library make the attributes (name, docstring, and etc) of the decorated function same to those of `view_func` so that it could be easily recognized when you run `./manage.py show_urls` or debug.
This snippet shows a way to preserve GET arguments with pagination. Many people make mistakes to omit the query arguments besides page arguments for the pagination, and making sure correct may sphagettize your code.
- template
- get
- view
- pagination
- arguments
If you're using [Django granular permissions](http://code.google.com/p/django-granular-permissions/), this templatetag may be useful.
It enables you to check permission in templates, as mentioned in the code:
{% has_row_perm user object "staff" as some_var %}
{% if some_var %}
...
{% endif %}
To be used in `if` statements, it always saves the result to the indicated context variable.
Put the snippet in row_perms.py in yourapp.templatetags package, and use `{% load row_perms %}` at your template.
achimnol has posted 7 snippets.