0

我有一个代表公司职位的模型:

class Position(models.Model):
    preferred_q = ForeignKey("Qualifications", blank=True, null=True, related_name="pref")
    base_q = ForeignKey("Qualifications", blank=True, null=True, related_name="base")

    #[...]

它有两个“内部对象”,分别代表最低资格和职位的“首选”资格。

我设置了一个通用视图来编辑/查看Position实例。在该页面中,我有一个链接可以转到另一个页面,用户可以在其中编辑每种类型的资格。问题是我不能只传递资格的主键,因为该对象可能是空的(空白和 null 为 True,这是设计使然)。相反,我只想传递位置主键和关键字preferred_qualificationbase_qualification在 URL 中,如下所示:

(r'^edit/preferred_qualifications/(?P<parent_id>\d{1,4})/$', some_view),

(r'^edit/base_qualifications/(?P<parent_id>\d{1,4})/$', some_view),

有什么方法可以使用通用视图来做到这一点,还是我必须制作自己的视图?这就像使用常规视图的蛋糕一样简单,但为了简单起见,我正在尝试将所有可以迁移到通用视图。

4

2 回答 2

0

如果您希望编辑表单用于 InnerModel 的相关实例之一,但您想在 URL 中传递 ParentModel 的 PK(尽我所知,这就是您要问的,尽管它不是很clear),您将不得不使用包装视图。否则 Django 的通用视图应该如何神奇地知道您要编辑哪个相关对象?

根据您想要以这种方式编辑的“许多模型”的相关对象属性的一致性程度,您很有可能只使用一个包装器视图而不是多个包装器视图。很难说没有看到更多的代码。

于 2009-06-16T11:36:20.923 回答
-1

正如通用视图的文档中update_object所解释的,如果您在 URL 定义中具有ParentModel作为'model'键的值options_dict,那么您应该已准备就绪。

于 2009-06-16T10:45:44.067 回答