0

Tag (BlogPost) に相当するものに、Tag のインスタンスを少なくとも 1 つ持たせるか、作成しないでください。(null=False と同じ効果)。私は多くのことを試みましたが、これらの制約を適用することを理解できませんでした。何か案は?

class Tag(models.Model):
    content_type = models.ForeignKey(ContentType)
    object_id = models.PositiveIntegerField()
    content_object = generic.GenericForeignKey('content_type', 'object_id')

    text = models.CharField("text", max_length=255)

    class Meta:
        unique_together = ('content_type', 'object_id', 'text',)


class BlogPost(models.Model):
    title = models.CharField("title", max_length=255)
    tags = generic.GenericRelation(Tag, verbose_name="tags")


class TagInline(generic.GenericTabularInline):
    model = Tag
    extra = 1


class BlogPostAdmin(admin.ModelAdmin):
    inlines = (TagInline,)
4

1 に答える 1

0

これをデータベース制約の形で必要とする場合、そのようなものが存在するかどうかはわかりません。

clean( self ) それ以外の場合は、モデルの関数をオーバーライドします。これは、カスタム検証に使用できます。

def clean( self ):
    # validate that this model has one or more tag
于 2012-10-10T22:46:50.583 に答える