rfj*_*001 7 django django-views django-class-based-views
我正在尝试实现一个约会制作应用程序,用户可以在其中创建与预先存在的类相关联的会话.我想要做的是使用django CreateView创建一个会话而不要求用户提供相关的类,同时在会话中为会话分配一个类.我试图通过在url中传入类的pk来做到这一点,这样我就可以在CreateView中查找类并将类分配给会话.
我无法弄清楚的是如何做到这一点.我猜在模板中我希望<a href="{% url create_sessions %}?class={{ object.pk }}>Create Session</a>在类的DetailView中有类似的东西,并且在我的urls.py文件中包含该行的url
url(r'^create-sessions?class=(\d+)/$', CreateSessionsView.as_view(), name = 'create_sessions'),但我对django很新,并且不完全了解这里的位置参数被发送到我的CBV以及如何使用它.
我将课程保存到会话的计划是将form_valid我的CBV 覆盖为:
def form_valid(self, form):
form.instance.event = event
return super(CreateSessionsView, self).form_valid(form)
如果这是明显不正确的,请告诉我.
谢谢!
Dan*_*man 18
GET参数(后面的那些?)不是URL的一部分,在urls.py中不匹配:你可以从request.GETdict获得.但是将该参数作为URL本身的一部分要好得多,因此它的格式为"/ create-sessions/1 /".
所以urlconf将是:
url(r'^create-sessions/(?P<class>\d+)/$', CreateSessionsView.as_view(), name='create_sessions')
Run Code Online (Sandbox Code Playgroud)
现在链接可以是:
<a href="{% url create_sessions class=object.pk %}">Create Session</a>
Run Code Online (Sandbox Code Playgroud)
现在在form_valid中你可以做到:
event = Event.objects.get(pk=self.kwargs['class'])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6354 次 |
| 最近记录: |