在没有形式的情况下以Django更新数据

发布于 2025-02-14 00:31:14 字数 6556 浏览 1 评论 0原文

我在没有形式的情况下进行CRUD操作。我想通过其ID更新数据。我的数据正在更新,但在诸如此响应之类的额外替补中获取数据

:{'customer_id':2,'customer_name':“('shweta',),'pin':“('400456',),”,“,”,“) 'city':“('dsaa',)”,'state':“('Maharashtra',),'country':“('印度',),”,“), 'customer_address':“('印度',)”,'Contact_person_name':“('80979998823',)“),'Phone':“('7418529634',),','电子邮件,'电子邮件': “/cdn-cgi/l/电子邮件保护” class =“ __ cf_email__” data-cfemail =“ e0898e868fce94858388E8989839281869493A0878D81898CCE838F8D”> [email  nbsp; procected] 'ship_to':“('thane',)”,'备注':“('na',)”}

views.pys.py

def updateCustomer(request,id):
customer=Customer.objects.get(pk=id)
response = model_to_dict(customer)
print ("response:" , response)
if request.method == "POST":
    # customer_id= request.POST['customer_id'],
    customer_name= request.POST['customer_name'],
    pin= request.POST['pin'],
    city= request.POST['city'],
    state= request.POST['state'],
    country= request.POST['country'],
    customer_address= request.POST['customer_address'],
    contact_person_name= request.POST['contact_person_name'],
    phone= request.POST['phone'],
    email= request.POST['email'],
    gst= request.POST['GST'],
    bill_to= request.POST['bill_to'],
    ship_to= request.POST['ship_to'],
    remarks= request.POST['remarks'],
    
    update_customer=Customer.objects.filter(customer_id=id).update(customer_name=customer_name,pin=pin,city=city,state=state,country=country,customer_address=customer_address,contact_person_name=contact_person_name,phone=phone,email=email,GST=gst,bill_to=bill_to,ship_to=ship_to,remarks=remarks)
    print("update query set: ",update_customer)
    
return render(request,"customers/update-customer.html",{"customer":response})

urls.py

    from django.contrib import admin
from django.urls import path
from . import views

urlpatterns = [
    path('view-customers', views.viewCustomers, name="view-customers"),
    path('add-customers', views.addCustomers, name="customers"),
    path('get-customers', views.getCustomers, name="get-customers"),
    # path('update-customers', views.updateCustomer, name="update-customers"),
    
    path('delete/<int:id>/',views.deleteCustomer, name="delete-customers"),
    path('update/<int:id>/',views.updateCustomer, name="update-customers"),

]

html

<form  method="post" >
                    {% csrf_token %}
                    <div class="row pb-2 pt-3">  
                        <div class="col-sm mb-2">
                            <input type="text" class="form-control" name="customer_id"  placeholder="Customer Id" value="{{customer.customer_id}}">
                        </div>
                        <div class="col-sm mb-2">
                            <input type="text" class="form-control" name="customer_name"  placeholder="Customer Name" value="{{customer.customer_name}}">
                        </div>
                        <div class="col-sm mb-2">
                            <input type="text" class="form-control" name="pin"  placeholder="Pin" value="{{customer.pin}}">
                        </div>
                        <div class="col-sm mb-2">
                            <input type="text" class="form-control" name="state"  placeholder="State" value="{{customer.state}}">
                        </div>
                    </div>
                    <div class="row pb-2">
                        <div class="col-sm mb-2">
                            <input type="text" class="form-control" name="city"  placeholder="City" value="{{customer.city}}">
                        </div>

                        <div class="col-sm mb-2">
                            <input type="text" class="form-control" name="country"  placeholder="Country" value="{{customer.country}}">
                        </div>
                        <div class="col-sm mb-2">
                            <input type="text" class="form-control" name="contact_person_name"  placeholder="Contact Person" value="{{customer.contact_person_name}}">
                        </div>
                        <div class="col-sm mb-2">
                            <input type="text" class="form-control" name="phone"  placeholder="Phone" value="{{customer.phone}}">
                        </div>
                    </div>
                    <div class="row pb-2">
                        <div class="col-sm mb-2">
                            <input type="text" class="form-control" name="email"  placeholder="Email" value="{{customer.email}}">
                        </div>
                        <div class="col-sm mb-2">
                            <input type="text" class="form-control"  name="GST" placeholder="GST Number" value="{{customer.GST}}">
                        </div>
                    </div>
                    <div class="row pb-2">
                        <div class="col-sm mb-2">
                            <textarea type="text" class="form-control" name="customer_address"  placeholder= "Customer Address">{{customer.customer_address}}</textarea>
                        </div>
                        <div class="col-sm mb-2">
                            <textarea type="text" class="form-control" name="bill_to"  placeholder= "Bill To">{{customer.bill_to}}</textarea>
                        </div>
                        <div class="col-sm mb-2">
                            <textarea type="text" class="form-control" name="ship_to"  placeholder= "Ship To">{{customer.ship_to}}</textarea>
                        </div>
                        <div class="col-sm mb-2">
                            <textarea type="text" class="form-control" name="remarks"  placeholder="Remarks">{{customer.remarks}}</textarea>
                        </div>
                    </div>
                    <div class="row">
                        <div class="col-sm mb-2">
                            <button class="btn btn-primary" type="submit">Update Customer</button>
                        </div>
                    </div>
                    <br>
                </form>

我如何获取我的数据像没有酒吧一样干净吗?

I am doing CRUD operation without Form. I want to update my data by its id. My data is updating but getting data in extra backets like this

response: {'customer_id': 2, 'customer_name': "('Shweta',)", 'pin': "('400456',)", 'city': "('DSAA',)", 'state': "('Maharashtra',)", 'country': "('India',)", 'customer_address': "('India',)", 'contact_person_name': "('8097998823',)", 'phone': "('7418529634',)", 'email': "('[email protected]',)", 'GST': "('741852',)", 'bill_to': "('Thane',)", 'ship_to': "('Thane',)", 'remarks': "('NA',)"}

views.py

def updateCustomer(request,id):
customer=Customer.objects.get(pk=id)
response = model_to_dict(customer)
print ("response:" , response)
if request.method == "POST":
    # customer_id= request.POST['customer_id'],
    customer_name= request.POST['customer_name'],
    pin= request.POST['pin'],
    city= request.POST['city'],
    state= request.POST['state'],
    country= request.POST['country'],
    customer_address= request.POST['customer_address'],
    contact_person_name= request.POST['contact_person_name'],
    phone= request.POST['phone'],
    email= request.POST['email'],
    gst= request.POST['GST'],
    bill_to= request.POST['bill_to'],
    ship_to= request.POST['ship_to'],
    remarks= request.POST['remarks'],
    
    update_customer=Customer.objects.filter(customer_id=id).update(customer_name=customer_name,pin=pin,city=city,state=state,country=country,customer_address=customer_address,contact_person_name=contact_person_name,phone=phone,email=email,GST=gst,bill_to=bill_to,ship_to=ship_to,remarks=remarks)
    print("update query set: ",update_customer)
    
return render(request,"customers/update-customer.html",{"customer":response})

urls.py

    from django.contrib import admin
from django.urls import path
from . import views

urlpatterns = [
    path('view-customers', views.viewCustomers, name="view-customers"),
    path('add-customers', views.addCustomers, name="customers"),
    path('get-customers', views.getCustomers, name="get-customers"),
    # path('update-customers', views.updateCustomer, name="update-customers"),
    
    path('delete/<int:id>/',views.deleteCustomer, name="delete-customers"),
    path('update/<int:id>/',views.updateCustomer, name="update-customers"),

]

html

<form  method="post" >
                    {% csrf_token %}
                    <div class="row pb-2 pt-3">  
                        <div class="col-sm mb-2">
                            <input type="text" class="form-control" name="customer_id"  placeholder="Customer Id" value="{{customer.customer_id}}">
                        </div>
                        <div class="col-sm mb-2">
                            <input type="text" class="form-control" name="customer_name"  placeholder="Customer Name" value="{{customer.customer_name}}">
                        </div>
                        <div class="col-sm mb-2">
                            <input type="text" class="form-control" name="pin"  placeholder="Pin" value="{{customer.pin}}">
                        </div>
                        <div class="col-sm mb-2">
                            <input type="text" class="form-control" name="state"  placeholder="State" value="{{customer.state}}">
                        </div>
                    </div>
                    <div class="row pb-2">
                        <div class="col-sm mb-2">
                            <input type="text" class="form-control" name="city"  placeholder="City" value="{{customer.city}}">
                        </div>

                        <div class="col-sm mb-2">
                            <input type="text" class="form-control" name="country"  placeholder="Country" value="{{customer.country}}">
                        </div>
                        <div class="col-sm mb-2">
                            <input type="text" class="form-control" name="contact_person_name"  placeholder="Contact Person" value="{{customer.contact_person_name}}">
                        </div>
                        <div class="col-sm mb-2">
                            <input type="text" class="form-control" name="phone"  placeholder="Phone" value="{{customer.phone}}">
                        </div>
                    </div>
                    <div class="row pb-2">
                        <div class="col-sm mb-2">
                            <input type="text" class="form-control" name="email"  placeholder="Email" value="{{customer.email}}">
                        </div>
                        <div class="col-sm mb-2">
                            <input type="text" class="form-control"  name="GST" placeholder="GST Number" value="{{customer.GST}}">
                        </div>
                    </div>
                    <div class="row pb-2">
                        <div class="col-sm mb-2">
                            <textarea type="text" class="form-control" name="customer_address"  placeholder= "Customer Address">{{customer.customer_address}}</textarea>
                        </div>
                        <div class="col-sm mb-2">
                            <textarea type="text" class="form-control" name="bill_to"  placeholder= "Bill To">{{customer.bill_to}}</textarea>
                        </div>
                        <div class="col-sm mb-2">
                            <textarea type="text" class="form-control" name="ship_to"  placeholder= "Ship To">{{customer.ship_to}}</textarea>
                        </div>
                        <div class="col-sm mb-2">
                            <textarea type="text" class="form-control" name="remarks"  placeholder="Remarks">{{customer.remarks}}</textarea>
                        </div>
                    </div>
                    <div class="row">
                        <div class="col-sm mb-2">
                            <button class="btn btn-primary" type="submit">Update Customer</button>
                        </div>
                    </div>
                    <br>
                </form>

How can I get my data clean like no barckets?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

栖迟 2025-02-21 00:31:14

未经验证的更新是错误的方式。

但是你可以做到:

def updateCustomer(request,id):
    ... # something, what you want
    data = request.POST
    customer=Customer.objects.get(pk=id)
    [setattr(customer, field.name, data.get(field.name)) for field in customer._meta.fiellds if field.name in data]
    customer.save()
    ... # something, what you want

the update without validation is a wrong wrong way.

but you can do it:

def updateCustomer(request,id):
    ... # something, what you want
    data = request.POST
    customer=Customer.objects.get(pk=id)
    [setattr(customer, field.name, data.get(field.name)) for field in customer._meta.fiellds if field.name in data]
    customer.save()
    ... # something, what you want
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文