Trying to create record in django results in fields being ignored without any error

问题描述 投票:0回答:0

我有一个收集信息的表格,但是在保存数据之前需要做更多的处理,所以我没有使用

form.save
,而是尝试直接创建记录。

然而,当手动创建记录时,无论我使用哪种方法,都只会保存一个字段(“消息”字段)。

我有一个非常简单的模型,只有 4 个字段:

class PaymentReceived(models.Model):
    name = models.CharField(verbose_name='First name', max_length=50, blank=True),
    pay_amount = models.IntegerField(null=False, blank=False),
    date = models.DateTimeField(auto_now_add=True),
    message = models.TextField(max_length=500, blank=True)

我尝试了3种不同的方法来创建新记录:

1:

new_payment = PaymentReceived(name=request.session['name'],message=request.session['message'],pay_amount=request.session['pay_amount'])
new_donaton.save()

2:

new_payment = PaymentReceived.objects.create(name=request.session['name'],message=request.session['message'],pay_amount=request.session['pay_amount']) 

3:

new_payment = PaymentReceived()   
new_payment.name = request.session['name']      
new_payment.message = request.session['message']
new_payment.pay_amount = request.session['pay_amount']
new_payment.save() 

我从会话中提取的每个值都有数据,没有一个是空白的(多次确认),并且当消息字段被保存时,它包含它应该的数据,只有

name
pay_amount
由于某种原因没有保存字段。

即使我将

new_payment.name= request.session['name']  
替换为
new_payment.name = "bob" 
,在我上面的第 3 次尝试中,该字段仍然不会保存。

当我特别尝试使用第二种方法时,我得到的错误是:

PaymentReceived() got unexpected keyword arguments: 'name', 'pay_amount'

如果我使用第三种方法保存记录,那些相同的字段不会出现在保存的记录中,这似乎不是巧合。

我无法弄清楚为什么我的消息字段被毫无问题地保存,但

name
字段却没有,例如。

任何人都可以就我做错了什么给出一些提示吗?

django django-models django-views django-orm
© www.soinside.com 2019 - 2024. All rights reserved.