Python 对象id或父对象的常规视图

Python 对象id或父对象的常规视图,python,django,django-generic-views,Python,Django,Django Generic Views,我有一个代表公司职位的模型: 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") #[...] 它有两个“内部对象”,表示该职

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

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")

    #[...]
它有两个“内部对象”,表示该职位的最低资格和“首选”资格

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

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

(r'^edit/base_qualifications/(?P<parent_id>\d{1,4})/$', some_view),
(编辑/首选资格/(?P\d{1,4})/$,一些视图),
(r'^edit/base_qualifications/(?P\d{1,4})/$,一些视图),

有没有办法使用通用视图来实现这一点,或者我必须创建自己的视图?使用常规视图非常简单,但为了简单起见,我正在尝试将我能做的一切都迁移到通用视图中。

如中所述,如果您在URL定义中的
选项中的
'model'
键中有
ParentModel
作为
'model'的值,您应该都已设置好

如果您希望编辑表单用于InnerModel的一个相关实例,但希望在URL中传递ParentModel的PK(据我所知,这就是您要问的,尽管不是很清楚),则必须使用包装器视图。否则,Django的通用视图如何神奇地知道要编辑哪个Related对象


根据您希望以这种方式编辑的“多个模型”的相关对象属性的一致性,您很有可能仅使用一个包装器视图而不是多个包装器视图来实现这一点。很难说没有看到更多的代码。

在这种情况下,您将编辑/更新ParentModel。我的印象是(尽管无可否认,这个问题并不完全清楚),OP想要编辑InnerModel的一个实例。