【发布时间】:2016-05-22 13:28:49
【问题描述】:
我正在使用 django-cms。我有自己的产品模型,它具有属性
page = models.ManyToManyField(Page, verbose_name=_('Page'), related_name="products")
Page 是 django-cms 类。在管理界面中,我可以添加具有字段 Slug 的新页面。现在在class Page 中没有现场蛞蝓。
那个 slug 字段在 forms.py 中
slug = forms.CharField(label=_("Slug"), widget=forms.TextInput())
是否可以在代码中访问该字段?
【问题讨论】:
-
一旦在表单中声明了一个字段,您仍然可以通过访问cleaned_data['formField'] 在您的视图中使用它。一旦您可以访问cleaned_data,您就可以对它们做任何您想做的事情(将它们保存到一个模型或多个模型等......取决于您的用例)
-
如果这是我的情况,那么是的。但我需要在我的自定义中间件中获取这些数据。这发生在页面渲染之前,所以我无法从 clean_data 中获取它。
-
你的自定义中间件类仍然有请求对象,你只需要覆盖docs.djangoproject.com/en/1.9/topics/http/middleware/…或其他方法。
-
是的,我有这个功能
process_request(request)。但是当我在产品详细信息页面中时,我使此功能起作用:if match and match.url_name == 'product_detail':。所以我无法从此页面获取发布数据。管理界面地址:127.0.0.1:8000/en/admin/cms/page/46 -
每个中间件可以有自己的process_request。
标签: python django django-cms