class ModTool(models.Model):
...
issue = models.OneToOneField(Issue)
priority = models.CharField(max_length=1, choices=PRIORITY, blank=True)
status = models.CharField(max_length=1, choices=STATUS, default='O', blank=True)
url
url(r'^moderate/(?P<pk>\d+)', ModEdit.as_view(),name='moderation')
视图
class Modedit(UpdateView):
model = ModTool
template_name = 'myapp/moderate.html'
fields = ['priority','status']
此时我无法弄清楚如何设置此视图来编辑具有在pk中给出的问题的onetoonefield的特定ModTool实例。
答案 0 :(得分:6)
您可以使用slug_field
和slug_url_kwarg
属性:
url(r'^moderate/(?P<issue_id>\d+)', ModEdit.as_view(),name='moderation')
class Modedit(UpdateView):
slug_field = 'issue_id'
slug_url_kwarg = 'issue_id'
model = ModTool
template_name = 'myapp/moderate.html'
fields = ['priority','status']
这将在issue_id=<issue_id>
上进行查找,其中issue_id
是在网址中捕获的问题的主键。
我已将关键字参数pk
重命名为issue_id
,以防止与主键的查找发生名称冲突。否则,会发生一个额外的过滤器,该过滤器会使用ModTool
主键的值过滤Issue
的主键。