Skip to main content

Posts

Showing posts with the label template

AJAX form in Django with jQuery.form plugin

Here I will describe an example form using jQuery Form  plugin. It will provide a good frontend, while Django serving a simple backend. I made this AJAX form using unobtrusive javascript. With human language it means the form will function with JavaScript disabled. And so jQuery.form plugin will work as an AJAX speedup addition and not as a major requirement. Features: * Works both with JavaScript  and without. * Uses standard Django ideology/hooks. * Uses the most known jQuery plugin for forms AJAX handling. Theory: Main idea that Django supports both normal and AJAX request in a standard view. And has a handy request.is_ajax() request method. It returns True/False depending on if request search has HTTP_X_REQUESTED_WITH header for the string 'XMLHttpRequest' . jQuery.form plugin sure does have that. Backend Django. We will create an app called 'contact' for our task and place it in the example django project. Urls from the project will redirect to ...

Meteor: Run/Bind JavaScript after rendering a template elements

Being studying Meteor myself I'd like to help beginners like me. I have searched for certain decisions that became wired to me after python development. So I'll just leave them here for your consideration. Imagine a situation when you need to bind your plugins to a newly rendered template. If you are diving into asynchronous JS dev, like I did and have developed AJAX websites... You will, one word, be quite confused because main concepts are different from the one's you used to know. Anyhow I'd try to explain on this simple task. Assume we have a template: < template name = "site-part" > < p > {{my-text}} </ p > </ template > And I render it's content like so: Template . site - part . content = function ( ) { return Session . get ( " my_data " ) ; } So I have this template piece rendered when "my_data" variable appears in session. And I have events binded to newly rendered webpage:...

Templates. New in Django 1.4

Continuing those series of tasty features in Django 1.4. It's templates and newly added templatetags this time. Many things improved in template logic now. Lets move on point by point... Tag  {% elif %} For most of us it is almost killer feature of new Django 1.4. You will have simpler logic in your templates, if you have advanced logic there, of course. ;) Key-value arguments for user tags You can use key-value for tags along with old, positional, arguments, e.g.: { % custom_tag 123 "test" thing . var text = msg | upper username = user . get_full_name % } All of this implemented using common "args" and "kwargs": @register . simple_tag def custom_tag ( a , b , * args , * * kwargs ) : warning = kwargs [ 'text' ] profile = kwargs [ 'username' ] . . . return . . . assignment_tag Some tags are not built to output something in template, like simple_tag. They only have to change something in c...

Django: 'ManyRelatedManager' object is not iterable

Upon development proces you often meet ManyToMany relations that throw errors in templates. I prefer to feed everything to context and play with it there. This kind of error appears when you iterate through a model's ManyToMany field. To fix it just add a related 'all' manager through dot syntax. Like so: Model: class BannerImage ( models . Model ) : image = models . ImageField ( upload_to = "somedir" ) def get_image_url ( self ) : return 'Image url here' class Banner ( models . Model ) : name = models . CharField ( max_length = 250 , null = True ) images = models . ManyToManyField ( BannerImage ) View/Tag or else, that creates context: banner = get_object_or_404 ( Banner , pk = 1 ) return { 'banner' : banner , } Template causing the error: {% for image in banner . images %} < img src = "{{ image.get_image_url }}" /> {% endfor %} Template without the error: {% ...

Django: How to add Google +1 button to your website.

What is Google +1 button? It's new Google social button. It's much similar to Facebook "Like" button. While available during one month it earned popularity that could compete with Facebook's social button. Corporation of Good knows what to do, so you probably want to have one on your website inline with Facebook's Like... Add Google +1 button to your site: - Open http://www.google.com/webmasters/+1/button/index.html and generate own button for your website. Google proposes HTML code like this: <html>   <head>     <title> +1 demo: Basic page </title>     <link rel = "canonical" href = "http://www.example.com" />     <script type = "text/javascript" src = "https://apis.google.com/js/plusone.js" >     </script>   </head>   <body>     <g:plusone></g:plusone>   </body> </html> It's quite simple, as you can see. And that's ...