python - django taggit prevent overlapping tags across different models -
i have 2 different models.
class messagearchive(models.model): from_user = models.charfield(null=true, blank=true, max_length=300) archived_time = models.datetimefield(auto_now_add=true) label = models.foreignkey(messagelabel, null=true, blank=true) archived_by = models.foreignkey(orgstaff) tags = taggablemanager()
now say, have defined spam
, todo
, urgent
tags messages.
and have model:
class personarchive(models.model): from_user = models.charfield(null=true, blank=true, max_length=300) archived_time = models.datetimefield(auto_now_add=true) label = models.foreignkey(messagelabel, null=true, blank=true) archived_by = models.foreignkey(orgstaff) tags = taggablemanager()
i define awesome
, legend
, rockstar
model person. there might few more defined.
as quite clear, not want tags person , message overlap. how should achieve that? thanks!
you can utilize limit_choices_to feature on foreignkeyfields , manytomanyfields. models.py file might this:
class personarchive(models.model): tags_field = models.manytomanyfield(tag, related_name="people_archives", limit_choices_to={'message_archives__isnull': true}) class messagearchive(models.model): tags_field = models.manytomanyfield(tag, related_name="message_archives", limit_choices_to={'people_archives__isnull': true})
Comments
Post a Comment