【发布时间】:2013-06-05 15:55:01
【问题描述】:
我正在尝试验证从 GenericInlineModelAdmin 表单保存的通用关系对象。
创建对象时,object_id 和 content_type 设置为 None,我无法访问它的相关对象,但当对象更新时,它们已正确设置。
这里是示例代码:
在models.py:
class Article(models.Model):
title = models.CharField(max_length=32)
body = models.TextField()
class TaggedItem(models.Model):
tag = models.SlugField()
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
content_object = generic.GenericForeignKey('content_type', 'object_id')
def clean(self, exclude=None):
pass
在admin.py:
class InlineTags(generic.GenericTabularInline):
model = TaggedItem
class ArticleAdmin(admin.ModelAdmin):
inlines = [InlineTags]
admin.site.register(Article, ArticleAdmin)
如果添加标签,在TaggedItem.clean() 方法中self.object_id 和self.content_type 设置为None。如果正在编辑标签,则它们已正确设置。
我在 django 1.4.x 和 1.5.x 上都试过这个。
【问题讨论】:
标签: django django-models django-forms django-admin