Django 1.11 CreateView 传递 URL 参数
Django 1.11 CreateView pass URL parameters
我正在使用 Django 1.11,我正在努力了解如何使用 CreateView Class 将 URL 参数传递给 ModelForm。我在 URL(start_date、end_date、start_time、end_time)中有 4 个参数,我试图将它们传递给表单中的相关字段.如果有人能指出正确的方向以找出解决此问题的方法,我将不胜感激!
URL 是在我的 html 文件中使用以下函数创建的:
window.location.assign("/calendar/create?start_date="+start.format("YYYY-MM-DD")+"&end_date="+end.format("YYYY-MM-DD")+"start_time="+start.format("h:mm A")+"&end_time="+end.format("h:mm A"));
这从 urls.py 打开:
url(r'^calendar/create',views.CalendarCreate.as_view(),name='calendar_create'),
来自 views.py:
class CalendarCreate(CreateView):
model = Event
form_class = EventForm
来自 forms.py:
class EventForm(ModelForm):
class Meta:
model = Event
到目前为止一切顺利,我的 event_form.html 以以下形式打开:
这就是我卡住的地方。通过在 Whosebug、谷歌搜索和尝试许多事情上花了几天时间,我相信解决方案涉及 get_form_kwargs
或 get_context_data
或 form_valid
in views.py
但我有可能只是困惑自己试图解决这个问题。任何帮助我走上正轨的帮助将不胜感激!
class CalendarCreate(CreateView):
model = Event
form_class = EventForm
def get_initial(self):
initial = {}
for x in self.request.GET:
initial[x] = self.request.GET[x]
print(initial)
return initial
注意如果 'start_date'
在 request.GET
你必须在你的 Event
模型中有相同的字段 'start_date'
,并且注意时间格式是有效的。
我正在使用 Django 1.11,我正在努力了解如何使用 CreateView Class 将 URL 参数传递给 ModelForm。我在 URL(start_date、end_date、start_time、end_time)中有 4 个参数,我试图将它们传递给表单中的相关字段.如果有人能指出正确的方向以找出解决此问题的方法,我将不胜感激!
URL 是在我的 html 文件中使用以下函数创建的:
window.location.assign("/calendar/create?start_date="+start.format("YYYY-MM-DD")+"&end_date="+end.format("YYYY-MM-DD")+"start_time="+start.format("h:mm A")+"&end_time="+end.format("h:mm A"));
这从 urls.py 打开:
url(r'^calendar/create',views.CalendarCreate.as_view(),name='calendar_create'),
来自 views.py:
class CalendarCreate(CreateView):
model = Event
form_class = EventForm
来自 forms.py:
class EventForm(ModelForm):
class Meta:
model = Event
到目前为止一切顺利,我的 event_form.html 以以下形式打开:
这就是我卡住的地方。通过在 Whosebug、谷歌搜索和尝试许多事情上花了几天时间,我相信解决方案涉及 get_form_kwargs
或 get_context_data
或 form_valid
in views.py
但我有可能只是困惑自己试图解决这个问题。任何帮助我走上正轨的帮助将不胜感激!
class CalendarCreate(CreateView):
model = Event
form_class = EventForm
def get_initial(self):
initial = {}
for x in self.request.GET:
initial[x] = self.request.GET[x]
print(initial)
return initial
注意如果 'start_date'
在 request.GET
你必须在你的 Event
模型中有相同的字段 'start_date'
,并且注意时间格式是有效的。