使用来自manytomany字段中的相关查找的值预填充tabularinline

时间:2012-06-11 06:31:56

标签: python django many-to-many

我有问题要问。我希望让我的change_form从相关查找的intances值中预填充tabularinline(使用manytomany字段)。因此,当我在课程kode_prod中的change_form中搜索Order时,我可以获取其实例并在我的表格线(类Foo)中预填充所有内容。

这是我的模特

class Product(models.Model):
    product_name= models.CharField(max_length=50)
    price = models.DecimalField(max_digits=10, decimal_places=2, default=Decimal('0.00'))
    tax_per_item = models.DecimalField(max_digits=10, null=True, blank=True, decimal_places=2, default=Decimal('0.00'))
    discount_per_item = models.DecimalField(max_digits=10, null=True, blank=True, decimal_places=2, default=Decimal('0.00'))


class Order(models.Model):
    produks = models.ManyToManyField(Product, verbose_name=u"Kode Produk")
    no_customer = models.ForeignKey(Customer, null=True, blank=True, related_name='%(class)s_kode_cust')


class Foo(models.Model):
    product = models.ForeignKey(Product, editable=False)
    pemesanan = models.ForeignKey(Order)
    quantity = models.IntegerField()
    price = models.IntegerField()
    discount = models.IntegerField()
    tax = models.IntegerField()

OrderProduct的关系很多,因此在change_form中,我可以使用相关的查找来获取其实例。班级Foo是来自change_form的tabularinline的中介。那么,有什么方法让我这样做吗?请帮助我,谢谢你的好意回复:)。

2 个答案:

答案 0 :(得分:0)

您需要OrderProductFoo之间的关系吗? 然后django-documentation可能会帮助你

答案 1 :(得分:0)

您应该编写一个jQuery脚本,在输入kode_prod,页面加载或单击“添加另一个Foo”链接时调用。您甚至不需要自定义提交按钮,因为您可以为'blur'事件注册事件监听器。

你的脚本发送一个异步XMLHttpRequest,它由django视图回答:

from django.core import serializers

def get_product(request, pk):
    return HttpResponse(serializers.serialize("xml", Product.objects.filter(pk=pk)))

然后在响应处理程序的jQuery脚本中,从响应中填充所有需要的字段。

下次请在您的问题中更具体,更明确。