कस्टम रूप में Django समय / दिनांक विजेट का उपयोग करना


171

मैं निफ्टी जावास्क्रिप्ट तिथि और समय विगेट्स का उपयोग कैसे कर सकता हूं जो कि डिफ़ॉल्ट व्यवस्थापक मेरे कस्टम दृश्य के साथ उपयोग करता है?

मैं Django रूपों दस्तावेज़ के माध्यम से देखा है , और यह संक्षेप में django.contrib.admin.widgets का उल्लेख करता है, लेकिन मुझे नहीं पता कि इसका उपयोग कैसे करें?

यहां मेरा टेम्प्लेट है कि मैं चाहता हूं कि यह लागू हो।

<form action="." method="POST">
    <table>
        {% for f in form %}
           <tr> <td> {{ f.name }}</td> <td>{{ f }}</td> </tr>
        {% endfor %}
    </table>
    <input type="submit" name="submit" value="Add Product">
</form>

इसके अलावा, मुझे लगता है कि यह ध्यान दिया जाना चाहिए कि मैंने वास्तव में इस फॉर्म के लिए खुद को एक दृश्य नहीं लिखा है, मैं एक सामान्य दृश्य का उपयोग कर रहा हूं। यहाँ url.py से प्रविष्टि है:

(r'^admin/products/add/$', create_object, {'model': Product, 'post_save_redirect': ''}),

और मैं प्रासंगिक रूप से पूरे Django / MVC / MTV चीज के लिए नया हूं, इसलिए कृपया आसान हो ...



जवाबों:


159

समय के साथ इस जवाब की बढ़ती जटिलता, और कई हैक की आवश्यकता है, शायद आपको ऐसा करने के खिलाफ सावधानी बरतने की जरूरत है। यह व्यवस्थापक के अनिर्दिष्ट आंतरिक कार्यान्वयन विवरणों पर निर्भर है, Django के भविष्य के संस्करणों में फिर से टूटने की संभावना है, और किसी अन्य जेएस कैलेंडर विजेट को खोजने और इसका उपयोग करने की तुलना में लागू करना आसान नहीं है।

अगर आपने यह काम करने की ठान ली है, तो आपको यहाँ क्या करना है:

  1. अपने मॉडल के लिए अपने स्वयं के मॉडलफ़ॉर्म उपवर्ग को परिभाषित करें (अपने ऐप में इसे फॉर्मडोमेक्स में डालने के लिए सबसे अच्छा), और यह बताएं कि AdminDateWidget / AdminTimeWidget / AdminSplitDateTime (अपने मॉडल से उचित फ़ील्ड नामों के साथ 'myateate' को बदलें):

    from django import forms
    from my_app.models import Product
    from django.contrib.admin import widgets                                       
    
    class ProductForm(forms.ModelForm):
        class Meta:
            model = Product
        def __init__(self, *args, **kwargs):
            super(ProductForm, self).__init__(*args, **kwargs)
            self.fields['mydate'].widget = widgets.AdminDateWidget()
            self.fields['mytime'].widget = widgets.AdminTimeWidget()
            self.fields['mydatetime'].widget = widgets.AdminSplitDateTime()
  2. अपने URLconf को 'form_class' पास करने के लिए बदलें: 'मॉडल' के बजाय ProductForm: जेनेरिक create_object देखने के लिए उत्पाद (जिसका अर्थ "my_app.forms से आयात ProductForm" के बजाय "myapp.models आयात उत्पाद से" होगा, निश्चित रूप से)।

  3. अपने टेम्प्लेट के प्रमुख में, जावास्क्रिप्ट फ़ाइल के लिंक को आउटपुट करने के लिए {{form.media}} शामिल करें।

  4. और हैक किए गए भाग: व्यवस्थापक दिनांक / समय विजेट यह मानते हैं कि i18n JS सामान लोड किया गया है, और इसके लिए core.js की भी आवश्यकता है, लेकिन स्वचालित रूप से एक भी प्रदान न करें। तो आपके {{form.media}} ऊपर के टेम्पलेट में आपको आवश्यकता होगी:

    <script type="text/javascript" src="/my_admin/jsi18n/"></script>
    <script type="text/javascript" src="/media/admin/js/core.js"></script>

    आप निम्नलिखित व्यवस्थापक CSS ( इस का उल्लेख करने के लिए धन्यवाद एलेक्स ) का उपयोग करना चाहते हैं :

    <link rel="stylesheet" type="text/css" href="/media/admin/css/forms.css"/>
    <link rel="stylesheet" type="text/css" href="/media/admin/css/base.css"/>
    <link rel="stylesheet" type="text/css" href="/media/admin/css/global.css"/>
    <link rel="stylesheet" type="text/css" href="/media/admin/css/widgets.css"/>

इसका मतलब है कि Django का एडमिन मीडिया (ADMIN_MEDIA_PREFIX) / मीडिया / एडमिन / - पर है, जिसे आप अपने सेटअप के लिए बदल सकते हैं। आदर्श रूप से आप इस मान को अपने खाके में लाने के बजाय इसे मानने के लिए एक संदर्भ प्रोसेसर का उपयोग करेंगे, लेकिन यह इस प्रश्न के दायरे से बाहर है।

इसके लिए यह भी आवश्यक है कि URL / my_admin / jsi18n / मैन्युअल रूप से django.views.i18n.javascript_catalog व्यू (या null_javascript_catalog यदि आप I18N का उपयोग कर रहे हैं) तक वायर्ड हो सकते हैं। आपको व्यवस्थापक एप्लिकेशन के माध्यम से जाने के बजाय यह स्वयं करना होगा ताकि आप इस बात पर ध्यान दिए बिना पहुँच योग्य हों कि क्या आप व्यवस्थापक में लॉग इन हैं (धन्यवाद जेरेमी इस बात को इंगित करने के लिए)। आपके URLconf के लिए नमूना कोड:

(r'^my_admin/jsi18n', 'django.views.i18n.javascript_catalog'),

अंत में, यदि आप Django 1.2 या उसके बाद का उपयोग कर रहे हैं, तो आपको विजेट्स को उनके मीडिया को खोजने में मदद करने के लिए अपने टेम्पलेट में कुछ अतिरिक्त कोड की आवश्यकता होगी:

{% load adminmedia %} /* At the top of the template. */

/* In the head section of the template. */
<script type="text/javascript">
window.__admin_media_prefix__ = "{% filter escapejs %}{% admin_media_prefix %}{% endfilter %}";
</script>

इस जोड़ के लिए धन्यवाद lupefiasco


3
ऐसा करने के लिए ऑनलाइन सबसे उपयोगी पोस्ट, लेकिन अंत में दिनांक / समय विजेट दिखाई दिया और फ़ील्ड को पॉप्युलेट करना अब इसे बाहर ले जाना है क्योंकि आवश्यक होने के बावजूद = फॉर्म फ़ील्ड में गलत होने के कारण अब यह संदेश दिखाता है "मान्य दिनांक / समय दर्ज करें।" यदि मैं इसे खाली छोड़ता हूं तो मेरे लिए आवश्यक क्षेत्र नहीं है। वापस मेरे लिए jquery।
फोबेबी

क्या यह Django 1.1.1 पर जाने का रास्ता है?
नाचो

1
Django 1.2 RC1 और बाद में, आपको उपरोक्त में एक छोटा सा बदलाव करने की आवश्यकता है। देखें: stackoverflow.com/questions/38601/…
mshafrir

1
क्या आपको पता है कि यह अभी भी Django 1.4 पर लागू होता है? हालाँकि मुझे jQuery की तारीख के साथ जाने के लिए यकीन है, मैं उत्सुक हूँ अगर Django टीम ने अपने विजेट को अधिक सार्वजनिक रूप से उपलब्ध कराया होगा। (मुझे संदेह नहीं है, जैसा कि यह क्यूए आसपास सबसे अधिक प्रलेखन लगता है)
जॉन सी

1
व्यवस्थापक के बाहर अधिक आसानी से पुन: प्रयोज्य विजेट बनाने की दिशा में कोई आंदोलन नहीं हुआ है, और मुझे नहीं लगता कि कोई भी होगा। यह बहुत काम होगा, और काम करने के लिए बहुत अधिक प्राथमिकता वाले आइटम हैं। (मैं Django कोर टीम का हिस्सा हूँ, btw)।
कार्ल मेयर

64

जैसा कि समाधान हैकिश है, मुझे लगता है कि कुछ जावास्क्रिप्ट के साथ आपकी खुद की तारीख / समय विजेट का उपयोग करना अधिक संभव है।


8
मैं सहमत हूँ। मैं अपने django परियोजना के साथ कुछ महीने पहले यह करने की कोशिश की। मैंने आखिरकार हार मान ली और बस अपने आप को jQueryUI के साथ जोड़ लिया। इसे काम करने में 10 मिनट का समय लगा।
पुजारी

8
रिकॉर्ड के लिए, मैं सहमत हूं, मैंने इस उत्तर को बदल दिया है, और मैंने वास्तव में उत्पादन साइट में अपने उत्तर में तकनीक का इस्तेमाल कभी नहीं किया है ;-)
कार्ल मेयर

12

हां, मैंने / व्यवस्थापक / jsi18n / url को ओवरराइड किया।

यहाँ मैंने अपने urls.py में क्या जोड़ा है। सुनिश्चित करें कि यह / व्यवस्थापक / url से ऊपर है

    (r'^admin/jsi18n', i18n_javascript),

और यहाँ i18n_javascript फ़ंक्शन मैंने बनाया है।

from django.contrib import admin
def i18n_javascript(request):
  return admin.site.i18n_javascript(request)

ओह, बहुत अच्छी बात है। मैं इसे ऊपर अपने उत्तर में जोड़ दूंगा ताकि लोगों को परेशानी होने से पहले खोजना आसान हो।
कार्ल मेयर

12

मैं अपने आप को इस पोस्ट को बहुत संदर्भित करता हूं, और पाया कि प्रलेखन डिफ़ॉल्ट विजेट्स को ओवरराइड करने के लिए थोड़ा कम हैकी तरीका परिभाषित करता है ।

( ModelForm की __init__ विधि को ओवरराइड करने की आवश्यकता नहीं है )

हालाँकि, आपको अभी भी अपने जेएस और सीएसएस को कार्ल उल्लेख के रूप में उचित रूप से तार करने की आवश्यकता है।

forms.py

from django import forms
from my_app.models import Product
from django.contrib.admin import widgets                                       


class ProductForm(forms.ModelForm):
    mydate = forms.DateField(widget=widgets.AdminDateWidget)
    mytime = forms.TimeField(widget=widgets.AdminTimeWidget)
    mydatetime = forms.SplitDateTimeField(widget=widgets.AdminSplitDateTime)

    class Meta:
        model = Product

संदर्भ फ़ील्ड डिफ़ॉल्ट फ़ॉर्म फ़ील्ड खोजने के लिए प्रकार


5
मैं असहमत हूं कि यह दृष्टिकोण कम हैकिश है। यह निश्चित दिखता है, निश्चित है, लेकिन आप पूरी तरह से मॉडल फॉर्म द्वारा उत्पन्न फ़ील्ड को ओवरराइड कर रहे हैं, जो मॉडल फ़ील्ड से हेल्प_टेक्स्ट जैसे विकल्पों को भी मिटा सकता है। ओवरराइडिंग इनसाइट केवल विजेट को बदल देती है और बाकी फॉर्म फील्ड को छोड़ देती है जैसा कि यह था।
कार्ल मेयर

11

1.4 संस्करण के लिए मेरा सिर कोड (कुछ नए और कुछ हटाए गए)

{% block extrahead %}

<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}admin/css/forms.css"/>
<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}admin/css/base.css"/>
<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}admin/css/global.css"/>
<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}admin/css/widgets.css"/>

<script type="text/javascript" src="/admin/jsi18n/"></script>
<script type="text/javascript" src="{{ STATIC_URL }}admin/js/core.js"></script>
<script type="text/javascript" src="{{ STATIC_URL }}admin/js/admin/RelatedObjectLookups.js"></script>
<script type="text/javascript" src="{{ STATIC_URL }}admin/js/jquery.js"></script>
<script type="text/javascript" src="{{ STATIC_URL }}admin/js/jquery.init.js"></script>
<script type="text/javascript" src="{{ STATIC_URL }}admin/js/actions.js"></script>
<script type="text/javascript" src="{{ STATIC_URL }}admin/js/calendar.js"></script>
<script type="text/javascript" src="{{ STATIC_URL }}admin/js/admin/DateTimeShortcuts.js"></script>

{% endblock %}

3
बहुत बढ़िया । मैं पिछले 2 हफ्तों से यह कोशिश कर रहा था और इससे मुझे बहुत बहुत धन्यवाद
numerah

{% STATIC_URL}} या {% स्थिर स्टेटिफ़ाइल्स%} का उपयोग {% स्थिर 'व्यवस्थापक / js / core.js'%} के साथ ... Django 1.4+ के लिए आवश्यक है, क्योंकि पूरे MEDIA_URL नेमस्पेस को खाली और हटा दिया गया था। / व्यवस्थापक / jsi18n ठीक से हल करता है यदि आपके पास ^ व्यवस्थापक / सर्वर में मैप किया गया / urls.py
jeberle

अच्छा सामान, Django 1.4 के मामले में उपयोगी
आशीष

10

Django 1.2 RC1 में शुरू, अगर आप Django एडमिन डेट पिकर विडेज ट्रिक का उपयोग कर रहे हैं, तो निम्नलिखित को आपके टेम्पलेट में जोड़ा जाना चाहिए, या आप कैलेंडर आइकन url को "/ लापता-व्यवस्थापक-मीडिया-उपसर्ग" के माध्यम से संदर्भित होते देखेंगे। / "।

{% load adminmedia %} /* At the top of the template. */

/* In the head section of the template. */
<script type="text/javascript">
window.__admin_media_prefix__ = "{% filter escapejs %}{% admin_media_prefix %}{% endfilter %}";
</script>

7

कार्ल मेयर द्वारा जवाब को लागू करते हुए, मैं यह टिप्पणी करना चाहूंगा कि आपको उस टेम्पलेट को अपने टेम्पलेट के भीतर कुछ मान्य ब्लॉक (हेडर के अंदर) में रखना होगा।

{% block extra_head %}

<link rel="stylesheet" type="text/css" href="/media/admin/css/forms.css"/>
<link rel="stylesheet" type="text/css" href="/media/admin/css/base.css"/>
<link rel="stylesheet" type="text/css" href="/media/admin/css/global.css"/>
<link rel="stylesheet" type="text/css" href="/media/admin/css/widgets.css"/>

<script type="text/javascript" src="/admin/jsi18n/"></script>
<script type="text/javascript" src="/media/admin/js/core.js"></script>
<script type="text/javascript" src="/media/admin/js/admin/RelatedObjectLookups.js"></script>

{{ form.media }}

{% endblock %}

मुझे यह लिंक भी उपयोगी लगी
Alex एस।

6

Django के लिए = = 2.0

नोट: दिनांक-समय फ़ील्ड के लिए व्यवस्थापक विगेट्स का उपयोग करना एक अच्छा विचार नहीं है क्योंकि यदि आप बूटस्ट्रैप या किसी अन्य सीएसएस फ्रेमवर्क का उपयोग कर रहे हैं तो व्यवस्थापक शैली-पत्रक आपकी साइट शैली-शीट के साथ संघर्ष कर सकते हैं। यदि आप बूटस्ट्रैप पर अपनी साइट का निर्माण कर रहे हैं, तो मेरे बूटस्ट्रैप-डेटपिकर विजेट django-बूटस्ट्रैप-डेटपिकर-प्लस का उपयोग करें

चरण 1:javascript-catalog अपनी परियोजना के लिए URL जोड़ें (ऐप की नहीं) urls.pyफ़ाइल।

from django.views.i18n import JavaScriptCatalog

urlpatterns = [
    path('jsi18n', JavaScriptCatalog.as_view(), name='javascript-catalog'),
]

चरण 2: अपने टेम्पलेट में आवश्यक जावास्क्रिप्ट / सीएसएस संसाधन जोड़ें।

<script type="text/javascript" src="{% url 'javascript-catalog' %}"></script>
<script type="text/javascript" src="{% static '/admin/js/core.js' %}"></script>
<link rel="stylesheet" type="text/css" href="{% static '/admin/css/widgets.css' %}">
<style>.calendar>table>caption{caption-side:unset}</style><!--caption fix for bootstrap4-->
{{ form.media }}        {# Form required JS and CSS #}

चरण 3: अपने में दिनांक-समय इनपुट फ़ील्ड के लिए व्यवस्थापक विजेट का उपयोग करें forms.py

from django.contrib.admin import widgets
from .models import Product

class ProductCreateForm(forms.ModelForm):
    class Meta:
        model = Product
        fields = ['name', 'publish_date', 'publish_time', 'publish_datetime']
        widgets = {
            'publish_date': widgets.AdminDateWidget,
            'publish_time': widgets.AdminTimeWidget,
            'publish_datetime': widgets.AdminSplitDateTime,
        }

5

नीचे भी अंतिम उपाय के रूप में काम करेगा यदि उपरोक्त विफल हो गया

class PaymentsForm(forms.ModelForm):
    class Meta:
        model = Payments

    def __init__(self, *args, **kwargs):
        super(PaymentsForm, self).__init__(*args, **kwargs)
        self.fields['date'].widget = SelectDateWidget()

के समान

class PaymentsForm(forms.ModelForm):
    date = forms.DateField(widget=SelectDateWidget())

    class Meta:
        model = Payments

इसे अपने प्रपत्रों में डालें from django.forms.extras.widgets import SelectDateWidget


1
यह मुझे त्रुटि देता है 'DateField' ऑब्जेक्ट की कोई विशेषता नहीं है 'need_multipart_form'
मेडेहा एमियर

3

क्या सिर्फ अपने विजेट के लिए एक वर्ग असाइन करने और फिर उस वर्ग को JQuery के डेटपिकर से बांधने के बारे में?

Django के रूपों

class MyForm(forms.ModelForm):

  class Meta:
    model = MyModel

  def __init__(self, *args, **kwargs):
    super(MyForm, self).__init__(*args, **kwargs)
    self.fields['my_date_field'].widget.attrs['class'] = 'datepicker'

और टेम्पलेट के लिए कुछ जावास्क्रिप्ट:

  $(".datepicker").datepicker();


1

आवश्यक = गलत के साथ स्प्लिटडेट टाइम के लिए अद्यतन समाधान और समाधान :

forms.py

from django import forms

class SplitDateTimeJSField(forms.SplitDateTimeField):
    def __init__(self, *args, **kwargs):
        super(SplitDateTimeJSField, self).__init__(*args, **kwargs)
        self.widget.widgets[0].attrs = {'class': 'vDateField'}
        self.widget.widgets[1].attrs = {'class': 'vTimeField'}  


class AnyFormOrModelForm(forms.Form):
    date = forms.DateField(widget=forms.TextInput(attrs={'class':'vDateField'}))
    time = forms.TimeField(widget=forms.TextInput(attrs={'class':'vTimeField'}))
    timestamp = SplitDateTimeJSField(required=False,)

form.html

<script type="text/javascript" src="/admin/jsi18n/"></script>
<script type="text/javascript" src="/admin_media/js/core.js"></script>
<script type="text/javascript" src="/admin_media/js/calendar.js"></script>
<script type="text/javascript" src="/admin_media/js/admin/DateTimeShortcuts.js"></script>

urls.py

(r'^admin/jsi18n/', 'django.views.i18n.javascript_catalog'),

मैंने SplitDateTime विजेट्स कोड
.

1

मैं इसका उपयोग करता हूं, यह बहुत अच्छा है, लेकिन मुझे टेम्प्लेट में 2 समस्याएं हैं:

  1. मैं टेम्पलेट में दर्ज प्रत्येक के लिए दो बार कैलेंडर आइकन देखता हूं ।
  2. और TimeField के लिए मेरे पास एक वैध दिनांक दर्ज करें। '

    यहां फॉर्म का स्क्रीनशॉट दिया गया है

models.py

from django.db import models
    name=models.CharField(max_length=100)
    create_date=models.DateField(blank=True)
    start_time=models.TimeField(blank=False)
    end_time=models.TimeField(blank=False)

forms.py

from django import forms
from .models import Guide
from django.contrib.admin import widgets

class GuideForm(forms.ModelForm):
    start_time = forms.DateField(widget=widgets.AdminTimeWidget)
    end_time = forms.DateField(widget=widgets.AdminTimeWidget)
    create_date = forms.DateField(widget=widgets.AdminDateWidget)
    class Meta:
        model=Guide
        fields=['name','categorie','thumb']

0

Django में 10. myproject / urls.py: urlpatterns की शुरुआत में

  from django.views.i18n import JavaScriptCatalog

urlpatterns = [
    url(r'^jsi18n/$', JavaScriptCatalog.as_view(), name='javascript-catalog'),
.
.
.]

मेरे टेम्पलेट में। html:

{% load staticfiles %}

    <script src="{% static "js/jquery-2.2.3.min.js" %}"></script>
    <script src="{% static "js/bootstrap.min.js" %}"></script>
    {# Loading internazionalization for js #}
    {% load i18n admin_modify %}
    <script type="text/javascript" src="{% url 'javascript-catalog' %}"></script>
    <script type="text/javascript" src="{% static "/admin/js/jquery.init.js" %}"></script>

    <link rel="stylesheet" type="text/css" href="{% static "/admin/css/base.css" %}">
    <link rel="stylesheet" type="text/css" href="{% static "/admin/css/forms.css" %}">
    <link rel="stylesheet" type="text/css" href="{% static "/admin/css/login.css" %}">
    <link rel="stylesheet" type="text/css" href="{% static "/admin/css/widgets.css" %}">



    <script type="text/javascript" src="{% static "/admin/js/core.js" %}"></script>
    <script type="text/javascript" src="{% static "/admin/js/SelectFilter2.js" %}"></script>
    <script type="text/javascript" src="{% static "/admin/js/admin/RelatedObjectLookups.js" %}"></script>
    <script type="text/javascript" src="{% static "/admin/js/actions.js" %}"></script>
    <script type="text/javascript" src="{% static "/admin/js/calendar.js" %}"></script>
    <script type="text/javascript" src="{% static "/admin/js/admin/DateTimeShortcuts.js" %}"></script>

0

मेरा Django सेटअप: 1.11 बूटस्ट्रैप: 3.3.7

चूंकि कोई भी उत्तर पूरी तरह से स्पष्ट नहीं है, इसलिए मैं अपना टेम्प्लेट कोड साझा कर रहा हूं, जिसमें कोई त्रुटि नहीं है।

टेम्पलेट का शीर्ष आधा:

{% extends 'base.html' %}
{% load static %}
{% load i18n %}

{% block head %}
    <title>Add Interview</title>
{% endblock %}

{% block content %}

<script type="text/javascript" src="{% url 'javascript-catalog' %}"></script>
<script type="text/javascript" src="{% static 'admin/js/core.js' %}"></script>
<link rel="stylesheet" type="text/css" href="{% static 'admin/css/forms.css' %}"/>
<link rel="stylesheet" type="text/css" href="{% static 'admin/css/widgets.css' %}"/>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" >
<script type="text/javascript" src="{% static 'js/jquery.js' %}"></script>

आधा नीचे:

<script type="text/javascript" src="/admin/jsi18n/"></script>
<script type="text/javascript" src="{% static 'admin/js/vendor/jquery/jquery.min.js' %}"></script>
<script type="text/javascript" src="{% static 'admin/js/jquery.init.js' %}"></script>
<script type="text/javascript" src="{% static 'admin/js/actions.min.js' %}"></script>
{% endblock %}

0

3 जून, 2020 (सभी उत्तरों ने काम नहीं किया, आप मेरे द्वारा उपयोग किए गए इस समाधान की कोशिश कर सकते हैं। बस TimeField के लिए)

प्रपत्रों में Charfieldसमय फ़ील्ड ( प्रारंभ और अंत इस उदाहरण में) के लिए सरल का उपयोग करें ।

forms.py

हम उपयोग Formया ModelFormयहाँ कर सकते हैं ।

class TimeSlotForm(forms.ModelForm):
    start = forms.CharField(widget=forms.TextInput(attrs={'placeholder': 'HH:MM'}))
    end = forms.CharField(widget=forms.TextInput(attrs={'placeholder': 'HH:MM'}))

    class Meta:
        model = TimeSlots
        fields = ('start', 'end', 'provider')

विचारों में समय इनपुट में स्ट्रिंग इनपुट परिवर्तित करें।

import datetime
def slots():
    if request.method == 'POST':
        form = create_form(request.POST)
        if form.is_valid():                
            slot = form.save(commit=False)
            start = form.cleaned_data['start']
            end = form.cleaned_data['end']
            start = datetime.datetime.strptime(start, '%H:%M').time()
            end = datetime.datetime.strptime(end, '%H:%M').time()
            slot.start = start
            slot.end = end
            slot.save()
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.