请帮我理解Django GenericInlineFormSet

时间:2010-09-21 04:00:49

标签: django

Django ContentTypes提供了一个GenericInlineFormSet,但是the documentation没有解释如何使用它,除了this test,它没有以我理解的方式真正解释它。

请你能帮我理解吗?

假设我有以下课程

class Dog(models.Model):
    name = models.CharField(max_length=64)
    breed = models.CharField(blank=True, max_length=64)

    class Meta:
        verbose_name = 'Dog'


class Fish(models.Model):
    name = models.CharField(max_length=64)
    habitat = models.CharField(blank=True, max_length=64)

    class Meta:
        verbose_name = 'Fish'


class Pet(models.Model):
    content_type = models.ForeignKey(
                               ContentType,
                               limit_choices_to={'model__in':('dog', 'fish')},
                               verbose_name='Species'
                               )
    object_id = models.CharField(max_length=64,  verbose_name='Animal')
    object = generic.GenericForeignKey('content_type', 'object_id')

    owner = models.ForeignKey(Owner)

    class Meta:
        unique_together = [("content_type", "object_id")]

显示宠物表单的视图是什么样的?

1 个答案:

答案 0 :(得分:0)

GenericInlineFormSet的工作方式与标准inline formset类似,不同之处在于它使用泛型关系而不是标准外键。