我正在使用django套装创建我的网站的管理员。我想在一个表单中创建不同的选项卡,因为我正在使用suit_form_tabs属性,我在我的管理中添加了它,但它不工作,也不显示在管理表单中
change_form_template = 'admin/view_order.html'
def customer_username(self, obj):
return format_html(f'''<a href="/admin/signin/customer/{obj.username.id}/change/">{obj.username.username}</a>''')
def generate_invoice(self, obj, request):
print("Generating invoice......")
return messages.info(request,message="generate invoice")
def view_order(self, obj):
return f"Order No #{obj.id}"
list_display = ['view_order', 'customer_username', 'full_name', 'email','shipping_mobile_number', 'created_at', 'order_status']
suit_form_tabs = (('info', 'Info'), ('address', 'Address'),('products', 'Products'),('tracking','Tracking'))
@csrf_protect_m
def changeform_view(self, request, object_id=None, form_url='', extra_context=None):
if not object_id:
self.form = OrderForms2
self.inlines = [orderProduct,OrderTrackingAdminTabular]
self.fieldsets = [
('Info', {
'classes': ('suit-tab', 'suit-tab-info',),
'fields': ['full_name']
}),
('Address', {
'classes': ('suit-tab', 'suit-tab-address',),
'fields': []}),
('Products', {
'classes': ('suit-tab', 'suit-tab-products',),
'fields': []})]
self.suit_form_tabs = (('info', 'Info'), ('address', 'Address'),('products', 'Products'),('tracking','Tracking'))
extra_context = {}
extra_context.update({
'show_save': True,
'show_save_and_continue': True,
'show_save_and_add_another': False,
'show_delete': False,
'Add_Order': True,})
return admin.ModelAdmin.changeform_view(
self, request,
object_id=object_id,
form_url=form_url,
extra_context=extra_context)
obj = self.get_object(request, unquote(object_id))
if request.method == 'POST' and 'generate_invoice' in request.POST:
self.generate_invoice(obj, request)
return redirect(f'/api/v1/order/generate_invoice/{obj.id}/')
self.form = OrderForms
self.inlines = []
if request.method == 'POST' and 'save_delivery_partner' in request.POST:
if not len(request.POST['delivery_partner']):
del_partner = None
else:
del_partner = request.POST['delivery_partner']
obj.delivery_partner = del_partner
obj.save()
return HttpResponseRedirect(request.get_full_path())
if request.method == 'POST' and 'send_order_details_to_dehlivery' in request.POST:
res = dehlivery.create_order(obj)
try:
if res.status_code == 200:
messages.info(request,message=f"Order Deatils sent to Dehlivery: {res.json()}")
else:
messages.error(request,message = f"Error in dehlivery API{res.json()}")
except Exception as e:
messages.error(request,message = f"{e} Error in dehlivery calling function: {res}")
return HttpResponseRedirect(request.get_full_path())
if request.method == 'POST' and 'track_order' in request.POST:
if obj.delivery_partner == 'other':
return redirect(f'/admin/order/ordertracking/?orderid={obj.id}')
res = dehlivery.track_order(obj)
scan_list = res['ShipmentData'][0]['Shipment']['Scans']
orderObj = Order.objects.get(id = obj.id)
delete_all = OrderTracking.objects.filter(orderid = orderObj).exclude(status = "Manifested").delete()
for scan in scan_list:
if scan['ScanDetail']['Scan'] == "Manifested":
status = "Order Sent to Dehlivery"
else:
status = scan['ScanDetail']['Scan']
OrderTracking.objects.create(orderid = orderObj,status = status,comments = scan['ScanDetail']['Instructions'],location = scan['ScanDetail']['ScannedLocation'],date_added= scan['ScanDetail']['ScanDateTime'],notify_customers = False)
newtrack = OrderTracking.objects.all().latest('date_added')
orderObj.order_status = newtrack.status
orderObj.save()
return redirect(f'/admin/order/ordertracking/?orderid={obj.id}')
if request.method == 'GET':
fields = ['product_name', 'quantity','price', 'tax_type', 'tax_rate', 'selling_price_with_tax', 'total_product_cost']
Order_Products = OrderProducts.objects.filter(order=obj.id).values_list('product_name', 'quantity', 'price', 'tax_type', 'tax_rate', 'selling_price_with_tax', 'total_product_cost')
res = []
for product in Order_Products:
data = {fields[i]: product[i] for i in range(len(fields))}
res.append(data)
extra_context = {
'show_save': False,
'show_save_and_continue': False,
'show_save_and_add_another': False,
'show_delete': False,
"res": res,
"fields": ['Product Name', 'Quantity', 'Price', 'Tax Type', 'Tax Rate', 'Selling Price', "Total Product Cost"],
"orderobj": obj,
"CodAmount": obj.cod_charges + (obj.cod_charges * (obj.cod_tax_rate/100)),
"ShippingAmount": (obj.shipping_charges) * (obj.shipping_tax_rate/100),
}
return admin.ModelAdmin.changeform_view(
self, request,
object_id=object_id,
form_url=form_url,
extra_context=extra_context,
)
如图所示,“图像字段集”属性工作正常,但“套装表单”选项卡不工作
目前没有回答
相关问题 更多 >
编程相关推荐