模型中的ContentType未正确保存

时间:2016-02-22 01:45:32

标签: django

我有一个基本上是标签的模型:

class Tag( models.Model ):
    tag = models.CharField( max_length=15 )
    text_color = RGBColorField(default='#000000')
    background_color =  RGBColorField( default='#88ff88' )

    entered_by = models.ForeignKey( 'member.Member', related_name='tag_entered_by' )
    entered_on = models.DateTimeField( default=timezone.now )

    content_type = models.ForeignKey(ContentType, related_name="tag_content_type")

    def __str__(self):
        return self.tag

几天前,我根据ContentType创建了一些与特定模型关联的标签。一切都很好,“我没有改变任何东西”。

然后我从shell创建了一些标签:

>> class_object=get_model('call', 'Call')
>> ct = ContentType.objects.get_for_model(class_object)
>>> tag = Tag(tag='thetag', text_color='#FFFFFF', background_color='#B40303', content_type=ct, entered_by=automem)                                                      
>>> tag.content_type
<ContentType: Call>
>>> tag.save()
>>> tag.content_type
<ContentType: Call>
>>> 
>>> 
>>> ts = Tag.objects.filter(tag='thetag')
>>> for t in ts:
...     print(t.content_type)
... 
invoice

“发票”是另一种型号。所以,我不明白为什么在这种情况下,content_type没有被正确保存。

我正在使用Django 1.8和Python 3.4。

[补充] 更多信息:

>>> ct
<ContentType: Call>
>>> ct.id
24

但是当我这样做时:

>>> for t in ContentType.objects.all():
...     print('{} {}'.format(t, t.id))

我得到了

...
invoice 24
...
Call 28
...

0 个答案:

没有答案