मेरे विचार में मेरे पास समय बीतने का तर्क है लेकिन मैं इसे django url के माध्यम से कैसे पास करूं?

मेरा विचार है

def create_event(check):
TimeSlots.objects.create(start=check)
return HttpResponseRedirect("index.html")

और मैंने एक यूआरएल की कोशिश की

url(r'^new/(?P<time>\d{2}:\d{2}:\d{2})/$', views.create_event, name='check'),

मैंने इसे इस रूप में बुलाया

<a href="{% url 'check' 08:30:00 %}">click</a>

लेकिन यह काम नहीं करता है और त्रुटि देता है शेष को पार्स नहीं कर सका: ':30:00' '08:30:00' से

1
Ahmed 5 अक्टूबर 2018, 16:58

1 उत्तर

सबसे बढ़िया उत्तर

समस्या यह है कि आप 08:30:30 को "कच्ची अभिव्यक्ति" के रूप में पास करते हैं। लेकिन Django टेम्प्लेट यह समझने में विफल होते हैं कि आप उस कोलन के साथ क्या करते हैं।

आपको पैरामीटर को स्ट्रिंग के रूप में पास करने की आवश्यकता है, जैसे:

<a href="{% url 'check' time='08:30:00' %}">click</a>
<!--                         ^ quote  ^  -->

चूंकि आपके URL में एक time पैरामीटर है, इसलिए आपको इसे इस दृश्य में संभालना होगा:

def create_event(request, time):
    TimeSlots.objects.create(start=time)
    return HttpResponseRedirect("index.html")

ध्यान दें कि यह दृश्य संस्थाओं में परिवर्तन करता है, और इसलिए इसे सामान्य रूप से POST अनुरोध द्वारा नियंत्रित किया जाना चाहिए। GET अनुरोध आमतौर पर (महत्वपूर्ण) परिवर्तन करने वाले नहीं होते हैं।

1
Willem Van Onsem 5 अक्टूबर 2018, 14:00