I'm trying to extend django-taggit Tag
model to have an added_by
(ForeignKey to User) field on it, so I can query all tags added by a particular user. So, I have created an app and in models.py there I have created another model, called MyTag
and I have a OneToOneField to Tag
on it:
from django.contrib.auth.models import User
from django.db import models
from django.db.models.signals import post_save
from django.dispatch import receiver
from taggit.models import Tag
class MyTag(models.Model):
tag = models.OneToOneField(Tag, on_delete=models.CASCADE)
added_by = models.ForeignKey(User, on_delete=models.CASCADE)
@receiver(post_save, sender=Tag)
def create_tag(sender, instance, created, **kwargs):
if created:
MyTag.objects.create(tag=instance, added_by=???)
@receiver(post_save, sender=Tag)
def save_tag(sender, instance, **kwargs):
instance.mytag.save()
The issue is, I can't access request.user
from inside models.py.
How do I overcome the issue, i.e. how do I properly extend django-taggit's Tag
model to have added_by field on it?