A reusable Django app that allows you to add translatable tags to any other model.
Project description
A reusable Django app that allows you to add translatable tags to any other model.
Installation
To get the latest stable release from PyPi
pip install django-multilingual-tags
To get the latest commit from GitHub
pip install -e git+git://github.com/bitmazk/django-multilingual-tags.git#egg=multilingual_tags
Add multilingual_tags to your INSTALLED_APPS
INSTALLED_APPS = (
...,
'multilingual_tags',
)
Don’t forget to migrate your database
./manage.py migrate multilingual_tags
Usage
To add tags to a model, you have to add the TaggedItemInline to that model’s admin. In your own apps, you can just do the following:
from django.contrib import admin
from multilingual_tags.admin import MultilingualTagsAdminMixin
from my_app import models
class MyModelAdmin(admin.ModelAdmin):
inlines = [TaggedItemInline]
admin.site.register(models.MyModel, MyModelAdmin)
This will render the inline admin form for adding tagged items.
If you want to add tags to a third party app, you might need to import its admin instead of Django’s ModelAdmin and then unregister and re-register the model. One way to do it would be this:
from django.contrib import admin
from multilingual_tags.admin import TaggedItemInline
from other_app.admin import SomeModelAdmin
from other_app.models import SomeModel
class SomeModelCustomAdmin(SomeModelAdmin):
# be careful, if the other admin also defines admins, you need to add
# them as well
inlines = SomeModelAdmin.inlines + [TaggedItemInline]
admin.site.unregister(SomeModel)
admin.site.register(SomeModel, SomeModelCustomAdmin)
To get all the tags for an object, you can simply use the TagManager:
# Get all tags for a certain model instance
>> Tag.objects.get_for_obj(mymodel_instance)
[<Tag: mytag>, <Tag: myothertag>]
# .. or get all tags for an entire queryset
>> Tag.objects.get_for_queryset(MyModel.objects.all())
[<Tag: mytag>, <Tag: myothertag>]
Contribute
If you want to contribute to this project, please perform the following steps
# Fork this repository
# Clone your fork
mkvirtualenv -p python2.7 django-multilingual-tags
make develop
git co -b feature_branch master
# Implement your feature and tests
git add . && git commit
git push -u origin feature_branch
# Send us a pull request for your feature branch
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Hashes for django-multilingual-tags-0.4.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 16247229c373c9420acc05024df9953d0ae5e315e380758000eda6c93efe2982 |
|
MD5 | ea500d611d2618dcabd396381fc3f3e9 |
|
BLAKE2b-256 | 55eed18b83c6176f9060e71b5671f444eb19cd7aa3e2f68595f9bb7701ff5b0b |