Inside a django template I'm trying to call the split function on one of the template variables and then get the last element, so I did something like this:
{{ newsletter.NewsletterPath.split('/').-1 }}
Unfortunately, it doesn't like the split. Some might suggest that I do the split in the view, but I'm not sure how to do that because I need to do it for all of the records. It would be much easier if I could do it in the template. Is there a way to do this?
From the django book:
Note that you do not include parentheses in the method calls. Also, it’s not possible to pass arguments to the methods; you can only call methods that have no required arguments.
So, if you want to call a method without arguments from a template, it's fine. Otherwise, you have to do it in the view.
What do you mean by "it doesn't like the split"? How does it manifest its dislike?
If I remember correctly, you can not pass any arbitrary arguments to methods, that are called from the django template and the identifiers, that can be used in the templates can only consist of a-z, A-Z, 0-9, underscores and dots (where dots signify lookup: dictionary->attribute->method->list-index).
There are at least four ways to achieve what you want:
self
populate the model instances in the view
for newsletter in newsletters:
setattr(newsletter, 'basepath',
newsletter.NewsletterPath.split('/')[-1])
(or something along these lines)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With