无法使用Django ORM创建对象

时间:2015-09-27 04:12:41

标签: python django

这是我的代码

try:
    with transaction.atomic():
        SysPay.objects.bulk_create([
            SysPay(
                pay_way = '1',
                pay_account = request.POST.get('first_pay_account', ''),
                pay_appid = request.POST.get('first_pay_appid', ''),
                pay_key = request.POST.get('first_pay_key', ''),
            ),
            SysPay(
                pay_way = '2',
                pay_account = request.POST.get('second_pay_account', ''),
                pay_appid = request.POST.get('second_pay_appid', ''),
                pay_key = request.POST.get('second_pay_key', ''),
                pay_pid = request.POST.get('second_pay_pid', ''),
                ),
        ])

这是我的模特

class SysPay(models.Model):
id = models.CharField(primary_key=True, max_length=64)
pay_way = models.CharField(max_length=4, blank=True, null=True)
pay_account = models.CharField(max_length=20, blank=True, null=True)
pay_appid = models.CharField(max_length=64, blank=True, null=True)
pay_key = models.CharField(max_length=64, blank=True, null=True)
pay_pid = models.CharField(max_length=20, blank=True, null=True)
stand_rate = models.DecimalField(max_digits=10, decimal_places=2, blank=True, null=True)
stand_rate_limit = models.DecimalField(max_digits=10, decimal_places=2, blank=True, null=True)
org_rate = models.DecimalField(max_digits=10, decimal_places=2, blank=True, null=True)
org_rate_limit = models.DecimalField(max_digits=10, decimal_places=2, blank=True, null=True)

第一个问题:

这么多" request.POST.get"在这里。有什么方法可以让它更加pythonic?我曾尝试过request.body,但我不知道如何像这样选择单个值。

第二个问题:

当我使用SysPay.objects.create(...)来编写数据时,它运行良好。但是当涉及到SysPay.objects.bulk_create([...])时,它无法将数据一起写入数据库

0 个答案:

没有答案