django 提交表单后 函数解析参数报错TypeError: not nonetype

这是views里的代码

from django.http import HttpResponse
from django.shortcuts import render
from .models import Item
# Create your views here.
def get_html(req):
    return render(req,"item.html")
def create_item(req):
    #解析参数
    params = req.POST
    name = params.get("i_name")
    barcode = params.get("i_barcode")
    cate_id = int(params.get("cate_id"))
    #创建数据
    item = Item.objects.create(
        name = name,
        barcode = barcode,
        category_id=cate_id
    )
    return HttpResponse("创建成功啦{}".format(item.name))

这是models的代码

from django.db import models

# Create your models here.
class Category(models.Model):
    name = models.CharField(
        max_length=30,
        verbose_name="分类名",
        db_column="cate_name" #改数据表字段的名字
    )
    cate_num = models.CharField(
        max_length=20,
        null=True,
        verbose_name="分类的编号"
    )
    create_time = models.DateTimeField(
        auto_now_add=True,
        verbose_name="创建时间"
    )
    update_time = models.DateTimeField(
        auto_now=True,
        verbose_name="修改时间"
    )
    class Meta:
        # 改数据表的名字
        db_table = "category"
    # PEP8


class Item(models.Model):
    name = models.CharField(
        max_length=40,
        verbose_name="商品名字"
    )

    barcode = models.CharField(
        max_length=13,
        verbose_name="条码",
        null=True
    )
    category = models.ForeignKey(
        Category,
        db_index=True
    )

图片说明图片说明

2个回答

你使用的对象没有定义,检查一下是否有拼写错误。还有可能的原因是没有import被调用的模块而使用了模块的功能。你可以尝试一下print type(XXX) 应该就能发现问题了。

weixin_43363700
我的珊珊 谢谢您的回答,但是这两种情况经过检查已经排除了,我看了一些相似的问题,不知道是不是外键的原因,网上这类型的问题很少很少,我更新了models的代码,您方便帮我看下吗,models的表都更新到数据库了
9 个月之前 回复

解决了吗??明显的问题是你没有获取到参数值,cate_id = int(params.get("cate_id")),你看看前台有没有传cate_id这个参数值,如果是form表单,那就看name属性有没有cate_id

hallen41
hallen41 回复我的珊珊: 结贴吧,哈哈
8 个月之前 回复
weixin_43363700
我的珊珊 解决了,谢谢啦
8 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!