اذهب إلى المحتوى

السؤال

نشر

لدي نموذج Form في المشروع الخاص بي ويحتوي هذا النموذج على عدد من الحقول:

class DetailsForm(ModelForm):
    class Meta:
        model = Details
    def __init__(self, *args, **kwargs):
        super(DetailsForm, self).__init__(*args, **kwargs)
        
        # كيفية جعل هذه الحقول إختيارية
        self.fields['name'].widget = widgets.AdminSplitDateTime()
        self.fields['email'].widget = widgets.AdminSplitDateTime()

في نموذج Details نفسه جعلت الحقول إختيارية من خلال الخصائص null و blank في الكود التالي:

name = models.CharField(max_length=255, null=True, blank=True)
email = models.CharField(max_length=255, null=True, blank=True)

كيف يمكنني جعل هذه الحقلول غير مطلوبة (أي إختيارية optional) في النموذج DetailsForm؟

Recommended Posts

  • 1
نشر

توجد طريقتان لجعل حقل إختياري في نموذج من نوع ModelForm  في جانغو:

  • الطريقة الأولى إعادة كتابة الحقل في النموذج وإضافة الخاصية required=False له:
    class DetailsForm(ModelForm):
    	name = forms.CharField(required=False) #أعدنا كتابة الحقل وجعله إختياري
        
        class Meta:
            model = Details
        def __init__(self, *args, **kwargs):
            super(DetailsForm, self).__init__(*args, **kwargs)
            
            # كيفية جعل هذه الحقول إختيارية
            self.fields['name'].widget = widgets.AdminSplitDateTime()
            self.fields['email'].widget = widgets.AdminSplitDateTime()

     

  • الطريقة الثانية: إضافة الخاصية required=False للحقل من خلال الدالة init:
    class DetailsForm(ModelForm):
        
        class Meta:
            model = Details
        def __init__(self, *args, **kwargs):
            super(DetailsForm, self).__init__(*args, **kwargs)
            
            # 
            self.fields['name'].widget = widgets.AdminSplitDateTime()
            self.fields['email'].widget = widgets.AdminSplitDateTime()
    
            # جعل الحقول اختيارية
            self.fields['name'].required = False
            self.fields['email'].required = False

     

 

  • 1
نشر

يمكنك جعل أي حقل إختياري في ملف forms.py عن طريق إستخدام required و إعطاء القيمة لها لتكون سلبية False على سبيل المثال الكود السابق يكون كالتالي :

questions = forms.CharField(help_text="Do you have any questions?", required=False)
about_yourself = forms.CharField(help_text="Tell us about yourself", required=False)

فهي تعادل تماماً القيم null = True , blank = True لكن في ملف forms.py

بالعلم أن required بشكل عام لا يتم إضافتها إلى معاملات الحقول في models.py حيثُ قد تم تعديلها في إصدار بايثون ما بين 2.7 إلى 3 لذلك فهي تعمل فقط داخل ملف forms.py و تعمل داخل models.py و لكن في الإصدارات القديمه لكلاً من Python و إطار العمل Django

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...