我的一个表单中有一个Decimalfield,用户可以在其中输入价格.

假设用户输入11.00,现在当我检索它时(priceform.leaned_data),它返回

Decimal('11.00') 

所以看起来像是

price = Decimal('11.00')

这会在我try 将其插入数据库时触发验证错误.

我想不出任何解决这个问题的办法

models.py

class Bid(models.Model):
    title = models.CharField(max_length=64, blank=True)
    date_time = models.DateTimeField(default=timezone.now, blank=True)
    price = models.DecimalField(max_digits=10, decimal_places=2)
    user = models.CharField(max_length=64)

forms.py:

class BidForm(ModelForm):
    class Meta:
        model = Bid
        fields = ['price']

views.py:

if request.method == "POST":
      bidform = BidForm(request.POST)
      if bidform.is_valid():
            price = bidform.cleaned_data['price']
            bid = Bid.objects.create(title=title, price=bidform, user=username)
            bid.save()

推荐答案

price应该是price,而不是bidform:

if request.method == 'POST':
    bidform = BidForm(request.POST, request.FILES)
    if bidform.is_valid():
        bid = Bid.objects.create(
            title=title,
            price=bidform.cleaned_data['price'],
            user=username
        )

但是,您可以让表单来完成这项工作:

if request.method == 'POST':
    bid = Bid(
        title=title,
        user=username
    )
    bidform = BidForm(request.POST, request.FILES, instance=bid)
    if bidform.is_valid():
        bid = bidform.save()

Django相关问答推荐

使用FormWizard将信息从视图传递到表单

Django-将html数据保存到quillfield中

Django中的判断约束

Django mods.py我想要一个函数转到一个变量

使用自定义模型注册后,Django无法登录

如何在Django中显示多个相关对象

Django: 无法将我的 comments 关联到特定产品

如何在 Django 测试中发送带有图像字段查询参数的 POST 请求

如何根据状态计算表中数据的数量?

Django 模型:如何查找自动生成的字段列表

Django授权判断具有通配符模式的URL

如何让两个模型相互引用 Django

获取结果集中返回的元素数的 django 模板标签是什么?

使用基于类的 UpdateView 在 Django 中更新用户模型

Django:通过manage.py使用服务器和gunicorn等其他服务器之间的区别.哪个更好?

Python Django 模板和测试变量是否为空或空字符串

Django:如何编写查询以使用多列进行排序,通过模板显示

如何使用 Requests 库执行 HTTP DELETE 请求

django python 日期时间设置为午夜

Django中'related_name'和'related_query_name'属性之间的区别?