本站首页    管理页面    写新日志    退出


«September 2025»
123456
78910111213
14151617181920
21222324252627
282930


公告
 本博客在此声明所有文章均为转摘,只做资料收集使用。

我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:
日志总数:1304
评论数量:2242
留言数量:5
访问次数:7611744
建立时间:2006年5月29日




[Django]related_name在django model中的应用
软件技术

lhwork 发表于 2007/2/1 14:46:03

今天在学习django0.95的时候遇到这样一个问题,我在一个model里面定义了两个foreignkey,都指向同一个model,结果在syncdb的时候老是报错,要我指定related_name,查到django.com上一篇文章Relating a model to another model more than once。 举例说明,我定义一个model名叫Tag, class TaggedItem(models.Model):“”"A tag on an item.”"”tag = models.SlugField()content_type = models.ForeignKey(ContentType, related_name=’content’)object_id = models.PositiveIntegerField()content_object = models.GenericForeignKey()owner = models.SlugField()owner_type = models.ForeignKey(ContentType, related_name=’owner’)owner_id = models.PositiveIntegerField()owner_object = models.GenericForeignKey(’owner_type’, ‘owner_id’) 定义一个简单的model来测试: class Mineral(models.Model):name = models.CharField(maxlength=150)hardness = models.PositiveSmallIntegerField() m1 = Mineral(name=’m1′, hardness=1) m1.save() m2 = Mineral(name=’m2′, hardness=2) m2.save() t1 = TaggedItem(tag=’t1′, content_object=m1, owner_object=m2) t1.save() ct = ContentType.objects.get(name=’mineral’) ct.owner.all()的结果是 [<TaggedItem: t1>] ct.content.all()的结果就是[<TaggedItem: t1>] 通过related_name我们可以找到是TaggedItem的哪个具体字段指向ContentType。


阅读全文(6467) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.078 second(s), page refreshed 144770069 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号