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

السؤال

نشر

مرحبا

لدي فورم تسجيل لاتظهر أي رسالة خطأ ولكن لايتم تصدير البيانات الى قاعدة البيانات 

###لايوجد مشكلة في الاتصال مع القاعدة

##models.py
class Hospital(Center):
  user = models.OneToOneField(User , verbose_name=_("user"), on_delete=models.CASCADE)
  slug = models.SlugField(_("slug"),blank=True,null=True  )
  
  class Meta:
    verbose_name = _("Hospital")
    verbose_name_plural= _("Hospital")

  def __str__(self):
        return str(self.user)




##forms.py
class NewHospitalForm(forms.ModelForm):      
   class Meta:
        model = Hospital 
        fields = ('user','name','address','address_detials',
        'number_phone','who_I','image','Specialization',
        'facebook','twitter','google')

##views.py
def form_hospital(request):
    if request.method == "POST":
        form_hospital = NewHospitalForm(request.POST, request.FILES)
        if form_hospital.is_valid():
          form_hospital.save(commit=False)
          form_hospital.user=request.user
          form_hospital.save()
          messages.success(request, ('Your websit was successfully added!'))
        else:
          	HttpResponse(request, 'Error saving form')
        return redirect("accounts:doctor")
    form_hospital = NewHospitalForm()
    add = Hospital.objects.all()
    return render(request, 'user/form_hospital.html', context={'form_hospital':form_hospital, 'add':add})


##html
    <div class="container">
        <form method="post" enctype="multipart/form-data">
            {% csrf_token %}
            {{form_hospital}}
            <button class="btn btn-primary my-4" type="submit">Submit</button>
        </form>
       
    </div>

 

Recommended Posts

  • 0
نشر
بتاريخ 10 دقائق مضت قال Zeina Makdisi:

مرحبا

لدي فورم تسجيل لاتظهر أي رسالة خطأ ولكن لايتم تصدير البيانات الى قاعدة البيانات 

###لايوجد مشكلة في الاتصال مع القاعدة

مرحبا زينة،

هل تظهر أي أخطار في ال Terminal؟

الشيفرة التي قمت بإرفاقها عليها بعض الملاحظات:

1 - في الفورم قمت بإضافة مجموعة من الحقول لا تتواجد في النموذج Hospital.

2 - في دالة العرض قمت باستعمال الصنف HttpResponse بشكل خاطئ.

بالتوفيق.

  • 0
نشر
بتاريخ 15 دقائق مضت قال Zeina Makdisi:

لاتظهر أي رسالة خطأ في Terminal

 

النموذج Hospital يرث الحقول الاضافية الموجودة في الفورم من كلاس Center

لنعمل أولا على تحسين شكل الشيفرة: 

##views.py
def form_hospital(request):
    if request.method == "POST":
        form_hospital = NewHospitalForm(request.POST, request.FILES)
        if form_hospital.is_valid():
            form_hospital.save(commit=False)
            form_hospital.user=request.user
            form_hospital.save()
            messages.success(request, ('Your websit was successfully added!'))
            return redirect("accounts:doctor") # نقوم بتحويل العميل إلى هذه الصفحة بعد حفظ المعلومات
        else:
            messages.error(request, ('Error saving form.')) # نقوم بإرسال رسالة خطأ حفظ النموذج الى العميل
    else: # اذا كانت طريقة الطلب عبارة عن GET
        form_hospital = NewHospitalForm()
    add = Hospital.objects.all()
    return render(request, 'user/form_hospital.html', context={'form_hospital':form_hospital, 'add':add})

لإظهار الأخطاء في القالب نقوم بإضافة:

##html
    <div class="container">
        <!-- في حالة الخطأ سوف تظهر الأخطاء -->
      	{% if form.errors %}
        <div class="alert alert-danger">
            {{ form.errors }}
        </div>
       {% endif %}
        <form method="post" enctype="multipart/form-data">
            {% csrf_token %}
            {{form_hospital}}
            <button class="btn btn-primary my-4" type="submit">Submit</button>
        </form>
       
    </div>

بالتوفيق.

  • 0
نشر
بتاريخ منذ ساعة مضت قال مسعود زاهي:

لنعمل أولا على تحسين شكل الشيفرة: 


##views.py
def form_hospital(request):
    if request.method == "POST":
        form_hospital = NewHospitalForm(request.POST, request.FILES)
        if form_hospital.is_valid():
            form_hospital.save(commit=False)
            form_hospital.user=request.user
            form_hospital.save()
            messages.success(request, ('Your websit was successfully added!'))
            return redirect("accounts:doctor") # نقوم بتحويل العميل إلى هذه الصفحة بعد حفظ المعلومات
        else:
            messages.error(request, ('Error saving form.')) # نقوم بإرسال رسالة خطأ حفظ النموذج الى العميل
    else: # اذا كانت طريقة الطلب عبارة عن GET
        form_hospital = NewHospitalForm()
    add = Hospital.objects.all()
    return render(request, 'user/form_hospital.html', context={'form_hospital':form_hospital, 'add':add})

لإظهار الأخطاء في القالب نقوم بإضافة:


##html
    <div class="container">
        <!-- في حالة الخطأ سوف تظهر الأخطاء -->
      	{% if form.errors %}
        <div class="alert alert-danger">
            {{ form.errors }}
        </div>
       {% endif %}
        <form method="post" enctype="multipart/form-data">
            {% csrf_token %}
            {{form_hospital}}
            <button class="btn btn-primary my-4" type="submit">Submit</button>
        </form>
       
    </div>

بالتوفيق.

شكرا لك 

بعد التعديل اصبح يظهر هذا الخطأ في صفحة الادمن 

 

11111111.png

  • 0
نشر
بتاريخ 7 ساعات قال Zeina Makdisi:

شكرا لك 

بعد التعديل اصبح يظهر هذا الخطأ في صفحة الادمن 

قمنا بعمل بعض الأخطاء في الشيفرة السابقة يجب علينا إصلاحها. في ملف القالب قمنا بإضافة:

{% if form.errors %}
<div class="alert alert-danger">
  {{ form.errors }}
</div>
{% endif %}

والخطأ يكمن في اسم المتغير form والذي يجب أن يكون form_hospital

{% if form_hospital.errors %}
<div class="alert alert-danger">
  {{ form_hospital.errors }}
</div>
{% endif %}

أما سبب ظهور الأخطاء في صفحة الأدمن فهذا راجع لشمولية عمل الرسائل في دجانغو فعند إضافتنا ل

messages.error(request, ('Error saving form.'))

دجانغو سوف يقوم بحفظ هذه الرسالة واظهارها للعميل عند توفر شيفرة العرض الخاصة بالرسائل وبطبيعة الحال لم نقم بإضافة هذه الشيفرة في القالب الخاص بنا، لإضافتها نقوم ب:

{% if messages %}
<ul class="messages">
    {% for message in messages %}
    <li  {% if message.tags %} class=" {{ message.tags }} " {% endif %}> {{ message }} </li>
    {% endfor %}
</ul>
{% endif %}

شيفرة القالب تصبح على الشكل:

##html
<div class="container">
  {% if messages %}
  <ul class="messages">
      {% for message in messages %}
      <li  {% if message.tags %} class=" {{ message.tags }} " {% endif %}> {{ message }} </li>
      {% endfor %}
  </ul>
  {% endif %}
  
  <!-- في حالة الخطأ سوف تظهر الأخطاء -->
  {% if form_hospital.errors %}
  <div class="alert alert-danger">
    {{ form_hospital.errors }}
  </div>
  {% endif %}
  <form method="post" enctype="multipart/form-data">
    {% csrf_token %}
    {{form_hospital}}
    <button class="btn btn-primary my-4" type="submit">Submit</button>
  </form>

</div>

بالتوفيق.

  • 0
نشر

المهندس مسعود كفى ووفى بارك الله بعلمك

 

اعتقد الخطأ بالمودل.

class Hospital(Center):
  user = models.OneToOneField(User , verbose_name=_("user"), on_delete=models.CASCADE)
  slug = models.SlugField(_("slug"),blank=True,null=True  )
  
  class Meta:
    verbose_name = _("Hospital")
    verbose_name_plural= _("Hospital")

  def __str__(self):
        return str(self.user)
# فقط فيلد اليوزر والسلق للمستشفى بالمودل

لكن لما نروح نشوف الفورم

class NewHospitalForm(forms.ModelForm):      
   class Meta:
        model = Hospital 
        fields = ('user','name','address','address_detials',
        'number_phone','who_I','image','Specialization',
        'facebook','twitter','google')

"""
تم استدعاء الكثير من الفيلدات الغير موجودة اساساً بالمودل!
بمعنى ان جانغو يحاول ان يحفظ المعلومات لكن لايوجد اي فيلد لها بقاعدة البيانات.

الحل تعديل المودل بما يتناسب مع الفيلدات المرغوبة او المكتوبة بالفورم. ثم عمل ميجريشن للمودل، ثم التجربة من جديد
"""

 

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...