在 Django 中获取外键 ID 时出错

error while getting foreignkey id in django

我是 django.i 的新人,我正在尝试使用 django 制作发票生成器应用程序。员工输入客户 ID 并将其带到发票 page.in 发票页面,员工可以输入产品 ID,产品和客户信息将添加到发票模型对象中。所以我想添加所有产品对于相同的发票 ID 或想按客户 ID 过滤,这将获得客户 ID 的所有发票,这里是代码 models.py

from django.db import models
from account.models import Customer
from product.models import Product

class Invoice(models.Model):
    products = models.ForeignKey(Product, on_delete=models.CASCADE, default=1)
    customers = models.ForeignKey(Customer, on_delete=models.CASCADE, default=4)
    date = models.DateTimeField(auto_now_add=True)
    total = models.BigIntegerField(default=0)
    quantity = models.IntegerField(default=0)

views.py

def billingform(request):
if request.method == "POST":
    cid = request.POST["customerId"]
    customer = Customer.objects.get(id=cid)
    request.session['customerId'] = cid
    return redirect('invoice')
return render(request, 'bform.html')
def invoice(request):
    cid = request.session.get('customerId')
    customer = Customer.objects.get(id=cid)
    if request.method == "POST":
        pd = request.POST["product_id"]
        qt = int(request.POST["quantity"])
        product = Product.objects.get(id=pd)
        pd_price = int(product.selling_price)
        total = pd_price*qt
        pd_name = product.name
        Invoice.objects.create(products = product,
                                    quantity = qt, total=total, customers = customer)
        cust_id = Invoice.objects.get(id, customers=customer.id)
        product_name = cust_id.products
        product_quantity = cust_id.quantity
        product_total = cust_id.total
        return render(request, 'invoice.html', { "total":product_total, "customer": customer, 
                     "product_names": product_name,
                     "quantitys": product_quantity,})
    else:
        return render(request, 'invoice.html', {"customers": customer})

它显示错误 TypeError: cannot unpack non-iterable builtin_function_or_method object

可能是这一行的错误..

cust_id = Invoice.objects.get(id, customers=customer.id)

改成

cust_id = Invoice.objects.get(id=customer.id, customers=customer.id)

如果它不起作用请告诉我,然后再向我展示您的模板文件..

cust_id = Invoice.objects.get(id=customer.id)

获取:获取单个对象并将其分配给变量。所以这应该可以纠正你的错误