As of django 1.4, the newly introduced `bulk_create()` function has a strong limitation when using SQLite. Namely it causes an error if you want to create more than `999/F` objects, where `F` is the number of fields in the object type.
The above `safe_bulk_create(objs)` function solves this issue by splitting the list of objects to appropriately sized bulks.
This solution also works fine with other db backends, and according to my experiments, it causes no significant overhead comparing to using `bulk_create()` directly.
For more details on the issue, see
https://code.djangoproject.com/ticket/17788
Thanks to charettes for pointing out how to calculate the number of fields in an object.
This is the description of a custom template tag to create DRY menu. It solves the problem of markup duplication in templates of your site. The menu always has one active option and one or several inactive options.
HOW TO USE
Define a structure of your menu in a parent template:
{% defmenu "menu1" %}
{% active %}<span class='active'>__text__</span>{% endactive %}
{% inactive %}<a href='__url__'>__text__</a>{% endinactive %}
{% opt "opt1" "/opt1/" %}Go to opt1{% endopt %}
{% opt "opt2" "/opt2/" %}Go to opt2{% endopt %}
{% opt "opt3" "/opt3/" %}Go to opt3{% endopt %}
{% enddefmenu %}
The menu has it's name (first parameter of the tag 'defmenu'.
First parameter of a tag 'opt' is menu option's name. '__text__' inside of 'active'/'inactive' will be substituted by inner text of a tag 'opt' (Go to opt...), '__url__' indide of 'active'/'inactive' will be substituted by second parameter of a tag 'opt'
To generate menu with one selected option in child template do:
{% menu "menu1" "opt1" %}
Here: "menu1" is a name of menu that was defined by 'defmenu' tag, "opt1" is selected option.
Result of the applying 'menu' is the next:
<span class='active'> Go to opt1</span> <a href='"/opt2/"'>Go to opt2</a> <a href='"/opt3/"'>Go to opt3</a>
This template tag allows you to increment a variable within a template. This avoids the need of having to use the `add` filter and the syntax is quite intuitive.
This is a simple module for use with django to make a per user
dropbox access simple
Requirements:
* standard django authentication
* django sessions enabeled
* dropbox python api
>> easy_install dropbox
To use this dropbox module you have to add the following configuration to your
settings.py file
`DROPBOX_SETTINGS = {
'app_key' : "insert key",
'app_secret' : "insert secret",
'type' : "app_folder",
}`
and of course to include it in INSTALLED_APPS
`INSTALLED_APPS = (
...,
'django_dropbox',
)`
to make a table to store personal access tokens for your users run
>> python manage.py syncdb
In your views you can import the dropbox_user_required decorator
to mark views that should recive the named parameter dropbox_client
`
from django_dropbox.decorator import dropbox_user_required
@dropbox_user_required
def myViewFunk(request, ..., dropbox_client):
file = ...
dropbox_client.put_file(file)
`
This is useful if you have a string that is html encoded (i.e. "<p>Hello world!</p>") and you want to do something more complex than just display it as html, such as using the striptags filter.
This is a snippet for a simple CAPTCHA. A random image from a list of images is shown, and the form checks if the correct solution was given.
Normally I would use django-simple-captcha or maybe reCAPTCHA, but in this case I wanted to have a number of fixed images, nothing dynamically generated.
I wanted to include the contact form in multiple pages, most of which are `direct_to_template` generic views.
However, passing the random image to the `extra_context` of `direct_to_template` didn't work, because the value was only initialized once on startup.
Therefore I pass the list of possible choices to `extra_context`, and use the template filter `|random` to select one image. The form's clean method will check if the correct solution was given when `form.is_valid()` is called in the view. If not, the view will display a new captcha.
Of course there are other, more elegant solutions like a custom template tag or overriding the generic view, but this works fine for me. Using a fixed number of images will probably not provide good protection for sites that are of much interest to spammers, but for smaller sites it should be sufficient.
You can see the CAPTCHA in action at [http://www.lackieren-in-polen.de/](http://www.lackieren-in-polen.de/)
A Django 1.4 wizard mixin for use cases with a wizard step on the frontpage
of your site -- with a request path of `'/'`.
Just define the name of the step (e.g. `root_step = 'landing_page'`)
and it does the setup and redirection automatically.
This snippet is based on [#1051](http://djangosnippets.org/snippets/1051/).
It adds filtering by existence of at least one related object.
It is an example of how to simply subclass the FilterSpec class,
in order to build a custom Filter.
The comment in the code contains instructions on how to implement it in a real project.
You're looking at the top-rated snippets currently on the site; if you'd like to contribute, sign up for an account and you'll be able to rate any snippet you see.