empirik
Здесь получается, что нужно каждый раз создавать объект этого типа TaggedItem. Получается, мне нужно где-то в коде следить за тем, не создался ли у меня объект одного из типов User или StoreCell и тогда добавлять объект типа TaggedItem. Со StoreCell все просто, это мой объект, можно, к примеру
Не внимательно читали описание.
Не нужно создавать объект этого типа, нужно указать дополнительные поля в вашем объекте где будет храниться id значения и тип этого значения, которое будет автоматически предствляться в виде нужного вам поля.
как то так:
from django.contrib.contenttypes import generic from django.contrib.contenttypes.models import ContentType class StoreCell(models.Model): name = models.CharField(max_length=50) class StoreCell2(models.Model): name = models.CharField(max_length=50) class Circuit(models.Model): name = models.CharField(max_length=50) place_type = models.ForeignKey(ContentType) palce_id = models.PositiveIntegerField('place_id') place = generic.GenericForeignKey('place_type', 'palce_id') def __unicode__(self): return u'%s' % self.name
т.е. поле place может быть объектом как класса StoreCell, так и StoreCell2
place1 = StoreCell.objects.get_or_create(name='Store cell 1')[0] c1 = Circuit(place=place1, name = 'Circuit1') c1.save() place2 = StoreCell2.objects.get_or_create(name='Store cell 2')[0] c2 = Circuit(place=place2, name = 'Circuit2') c2.save()