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

استخدام jquery POST طلب لحفظ النموذج في Django

محمد لارافيل

السؤال

ملف form.html, أستخدم فيه Django model form

<div class="container">
              <form action="{% url 'add_product' %}" id="product_form" method="POST" enctype="multipart/form-data">
                {% csrf_token %}
                <div class="row">
                  <div class="col-sm-12">
                    <label for="">{{form.code.label}} :</label>
                    {{form.code}}
                    <span id="error">{{form.code.errors | striptags }}</span>
                  </div>
                  <div class="col-sm-12">
                    <label for="">{{form.company_id.label}} :</label>
                    {{form.company_id}}
                    <span id="error">{{form.company_id.errors | striptags }}</span>
                  </div>
                  <div class="col-sm-12">
                    <label for="">{{form.item_id.label}} :</label>
                    {{form.item_id}}
                    <span id="error">{{form.item_id.errors | striptags }}</span>
                  </div>
                  <div class="col-sm-12">
                    <label for="">{{form.name.label}} :</label>
                    {{form.name}}
                    <span id="error">{{form.name.errors | striptags }}</span>
                  </div>
                  <div class="col-sm-12">
                    <label for="">{{form.price.label}} :</label>
                    {{form.price}}
                    <span id="error">{{form.price.errors | striptags }}</span>
                  </div>
                  <div class="col-sm-12">
                    <label for="">{{form.pro_image.label}}</label>
                    {{form.pro_image}}
                    <p style="color:red">{{form.pro_image.help_text}}</p>
                    <span id="error">{{form.pro_image.errors | striptags }}</span>
                  </div>
                  <div class="col-sm-12">
                    <label for="">{{form.desc.label}}</label>
                    {{form.media}}
                    {{form.desc}}
                    <span id="error">{{form.desc.errors | striptags }}</span>
                  </div>
                </div>
                <div class="row">
                  <div class="col-sm-12">
                    <label for="">{{form.status.label}}</label>
                    {{form.status}}
                    <span id="error">{{form.status.errors | striptags }}</span>
                  </div>
                </div>
                <div class="row">
                  <div class="col-sm-4 mt-2 mb-2">
                    
                    <button type="submit" class="btn btn-success">
                      <i class="{{btn_type}}"></i>
                    </button>
                    
                    <a href="{% url 'product' %}">
                      <button type="button" class="btn btn-primary"><i class="fa fa-long-arrow-alt-left"></i></button>
                    </a>
                  </div>
                </div>
              </form>
              {% if img_object %}
              <img src="{{ img_object.pro_image.url}}" alt="connect" style="max-height:300px"> 
              {% endif %}
            </div>

عندما أتحقق من تيرمنال Django يظهر خطأ, وهنا views.py

def Add_Product(request):
    # noti,msg = Notificatino()
    if request.method == "POST":
        form = ProductForm(request.POST, request.FILES)
        print("testing")
        try:
            if form.is_valid:
                forms = form.save(commit=False)
                forms.create_by=request.user
                forms.save()
                form = ProductForm()
                messages.success(request,'Product Has been added.')
                #return redirect('product')
        except:
            print(str(form.errors))
            messages.error(request, str(form.errors))
    else:
        form = ProductForm()
    context={
        # 'noti':noti,
        'form':form,
        'title':'iPanel | Product Master',
        'page_title':'Product List',
        'tree_title_1':'Product',
        'tree_title_2':'Add',
        'tree_url':'product',
        'btn_type':'fa fa-regular fa-plus',
    } 
    return render(request,'panel/product/form.html',context)

خطأ أثناء إرسال طلب من نوع post

<ul class="errorlist"><li>company_id<ul class="errorlist"><li>This field is required.</li></ul></li><li>item_id<ul class="errorlist"><li>This field is required.</li></ul></li><li>name<ul class="errorlist"><li>This field is required.</li></ul></li><li>price<ul class="errorlist"><li>This field is required.</li></ul></li><li>pro_image<ul class="errorlist"><li>This field is required.</li></ul></li><li>status<ul class="errorlist"><li>This field is required.</li></ul></li></ul>

هل يمكنكم المساعدة؟
شكرا لكم

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

الخطأ الذي تتلقاه يشير إلى أن بعض الحقول الإلزامية في نموذج Django لم تتم إدخالها في الطلب POST الخاص بك. تأكد من تقديم جميع الحقول الإلزامية والتأكد من أنها ليست فارغة.

بعض الأسباب الأخرى التي يمكن أن تتسبب في هذا الخطأ تشمل:

  • عدم تضمين حقل الرمز الخاص بك في نموذج النموذج في النموذج HTML.
  • عدم إضافة enctype="multipart/form-data" إلى العلامة form في النموذج HTML لدعم تحميل الملفات.
  • عدم تضمين csrf_token في النموذج HTML للحماية ضد هجمات CSRF.

قمت بإضافة تعليقات لشرح الأمور الجديدة التي قمت بتحديثها في الكود.

from django.shortcuts import render, redirect
from django.contrib import messages
from .forms import ProductForm


def Add_Product(request):
    if request.method == "POST":
        form = ProductForm(request.POST, request.FILES)
        if form.is_valid(): # استخدمت قوسين للاستدلال
            # احفظ البيانات وتمرير العنصر المميز إلى commit=False
            product = form.save(commit=False)
            # تحديد المستخدم الذي قام بإنشاء العنصر
            product.created_by = request.user
            product.save()
            # رسالة نجاح في حالة النجاح
            messages.success(request, 'Product has been added.')
            return redirect('product')
        else:
            # رسالة خطأ إذا كانت النموذج غير صالح
            messages.error(request, form.errors)
    else:
        # تم إنشاء نموذج فارغ لعرض الصفحة الأولية
        form = ProductForm()
    context={
        'form':form,
        'title':'iPanel | Product Master',
        'page_title':'Product List',
        'tree_title_1':'Product',
        'tree_title_2':'Add',
        'tree_url':'product',
        'btn_type':'fa fa-regular fa-plus',
    } 
    return render(request,'panel/product/form.html',context)

تأكد من تحديث ملف views.py بالكود الجديد وإعادة تشغيل الخادم Django ومحاولة إرسال النموذج مرة أخرى. يجب أن تعمل الآن دون الحصول على أي أخطاء.

 

تم التعديل في بواسطة Mustafa Suleiman
رابط هذا التعليق
شارك على الشبكات الإجتماعية

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...