列出Django中的泛型关系

时间:2013-07-08 10:06:20

标签: django

我在名为取消订阅的类中有通用关系。此时的关系链接到名为联系人的类。

我想在视图中列出所有取消订阅的联系人。我的问题是,我从哪里列出?联系人或取消订阅?即我应该从我的联系人应用程序或我的取消订阅应用程序写一个视图,我应该从哪个角度来看它?

由于

class Unsubscribe(models.Model):
    """

    Notes:
    See: http://www.screamingatmyscreen.com/2012/6/django-and-generic-relations/
    """
    content_type = models.ForeignKey(ContentType, help_text="Represents the name of the model")
    object_id = models.PositiveIntegerField(help_text="stores the object id")
    content_object = generic.GenericForeignKey('content_type', 'object_id')

    reason = models.CharField(max_length=60)

    request_made = models.DateTimeField(auto_now_add=True,
                                   help_text="Shows when object was created.")

1 个答案:

答案 0 :(得分:2)

如果它是一般关系,除了Contact之外还会有其他模型与此模型相关。因此,Unsubscribe也会与其他模型相关联。

您想要做的是Contact特有的,所以我想它应该放在contact应用的views.py中。 此外,通常它取决于您将从中提供的URL是什么。如果您的网址类似于/contacts/unsubscribed,则该网址应位于contacts app。

但是如果你想在一个地方跟踪未订阅的模型对象,它可以进入unsubscribe app。例如:假设您要在/unsubscribed/contacts/显示未订阅的联系人,并希望在foos显示未订阅的/unsubscribed/foos/,那么它应该在取消订阅应用中。

因此,在很大程度上取决于您的网址结构应该如何以及如何使用它。