Zeina Almakdisi نشر 14 نوفمبر 2022 أرسل تقرير نشر 14 نوفمبر 2022 مرحبا لدي فورم تسجيل لاتظهر أي رسالة خطأ ولكن لايتم تصدير البيانات الى قاعدة البيانات ###لايوجد مشكلة في الاتصال مع القاعدة ##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> 1 اقتباس
0 مسعود زاهي نشر 14 نوفمبر 2022 أرسل تقرير نشر 14 نوفمبر 2022 بتاريخ 10 دقائق مضت قال Zeina Makdisi: مرحبا لدي فورم تسجيل لاتظهر أي رسالة خطأ ولكن لايتم تصدير البيانات الى قاعدة البيانات ###لايوجد مشكلة في الاتصال مع القاعدة مرحبا زينة، هل تظهر أي أخطار في ال Terminal؟ الشيفرة التي قمت بإرفاقها عليها بعض الملاحظات: 1 - في الفورم قمت بإضافة مجموعة من الحقول لا تتواجد في النموذج Hospital. 2 - في دالة العرض قمت باستعمال الصنف HttpResponse بشكل خاطئ. بالتوفيق. 1 اقتباس
0 Zeina Almakdisi نشر 14 نوفمبر 2022 الكاتب أرسل تقرير نشر 14 نوفمبر 2022 (معدل) لاتظهر أي رسالة خطأ في Terminal النموذج Hospital يرث الحقول الاضافية الموجودة في الفورم من كلاس Center تم التعديل في 14 نوفمبر 2022 بواسطة Zeina Makdisi 1 اقتباس
0 مسعود زاهي نشر 14 نوفمبر 2022 أرسل تقرير نشر 14 نوفمبر 2022 بتاريخ 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> بالتوفيق. 1 اقتباس
0 Zeina Almakdisi نشر 14 نوفمبر 2022 الكاتب أرسل تقرير نشر 14 نوفمبر 2022 بتاريخ منذ ساعة مضت قال مسعود زاهي: لنعمل أولا على تحسين شكل الشيفرة: ##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> بالتوفيق. شكرا لك بعد التعديل اصبح يظهر هذا الخطأ في صفحة الادمن 1 اقتباس
0 مسعود زاهي نشر 15 نوفمبر 2022 أرسل تقرير نشر 15 نوفمبر 2022 بتاريخ 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> بالتوفيق. 1 اقتباس
0 Dev Hassan نشر 18 نوفمبر 2022 أرسل تقرير نشر 18 نوفمبر 2022 المهندس مسعود كفى ووفى بارك الله بعلمك اعتقد الخطأ بالمودل. 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') """ تم استدعاء الكثير من الفيلدات الغير موجودة اساساً بالمودل! بمعنى ان جانغو يحاول ان يحفظ المعلومات لكن لايوجد اي فيلد لها بقاعدة البيانات. الحل تعديل المودل بما يتناسب مع الفيلدات المرغوبة او المكتوبة بالفورم. ثم عمل ميجريشن للمودل، ثم التجربة من جديد """ اقتباس
السؤال
Zeina Almakdisi
مرحبا
لدي فورم تسجيل لاتظهر أي رسالة خطأ ولكن لايتم تصدير البيانات الى قاعدة البيانات
###لايوجد مشكلة في الاتصال مع القاعدة
6 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.