3
我想驗證從GenericInlineModelAdmin窗體保存的通用關係對象。從GenericInlineModelAdmin的Django驗證通用關係
創建對象時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上都試過這個。