zoukankan      html  css  js  c++  java
  • Django练习遇到的错误记录

    _reverse_with_prefix() argument after ** must be a mapping, not set

    错误代码:

        def get_absolute_url(self):
            return reverse('blog:single',kwargs={'pk',self.pk})

    错误:关键字参数kwargs是一个字典,键和值之间是冒号而不是逗号。改正为:

        def get_absolute_url(self):
            return reverse('blog:single',kwargs={'pk':self.pk})

    '' value has an invalid date format. It must be in YYYY-MM-DD format.

    用python从csv文件向数据库导入数据时发生的错误

    model如下:

    class Pack(models.Model):
        DISCIPLINES = (('E', u'Electrical'),
                       ('L', u'Piping'),
                       ('M', u'Mechanical'),)
        STATUS = (('A', u'Accept'),
                  ('C', u'Comments'),
                  ('R', u'Reject'))
        subsystem = models.ForeignKey(Subsystem)
        pack_number = models.CharField(max_length=32)
        pack_name = models.CharField(max_length=128)
        discipline = models.CharField(max_length=12, choices=DISCIPLINES, null=True)
        inspect_date = models.DateField(null=True,blank=True)
        status=models.CharField(max_length=2,choices=STATUS,blank=True,null=True)
    
        def __str__(self):
            return self.pack_number

    写入数据的代码如下:

    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "MC_monitor.settings") 
    
    '''
    Django 版本大于等于1.7的时候,需要加上下面两句
    import django
    django.setup()
    否则会抛出错误 django.core.exceptions.AppRegistryNotReady: Models aren't loaded yet.
    '''
    import django
    
    if django.VERSION >= (1, 7):#自动判断版本
        django.setup()
    
    from MC.models import Pack 
    f = open('CSV/Pack.csv')
    print (u"读取文件结束,开始导入!")
    WorkList = []
    next(f) #将文件标记移到下一行
    y = 0
    
    for line in f:
        row = line.split(',') #按;对字符串进行切片
        y = y + 1
        WorkList.append(Pack(pack_number=row[1],pack_name=row[2],discipline=row[3],
                               inspect_date=row[4] ,status=row[5],subsystem_id=row[6],))
        
    Pack.objects.bulk_create(WorkList)     
    print ("成功导入数据"+str(y)+"")
    f.close()

    csv中导入的新数据中,inspect_date字段时空的,但是尽管model的字段选项中写了null=True,blank=True,仍然提示错误。

    后在Stack Overflow上找到了答案:

    inspect_date=row[4] 改为inspect_date=row[4] or None 后问题解决。

  • 相关阅读:
    分布式锁-数据库实现
    MyBatis-Plus自动填充功能失效导致原因
    Java中锁的解决方案
    2:什么是单体应用锁?什么是分布式锁?
    1:初始锁这个概念
    移动端网页开发问题小结
    node.js+socket.io创建web聊天室
    使用HTML5实现刮刮卡效果
    总结(活动)
    videoJs 使用
  • 原文地址:https://www.cnblogs.com/dreamkeeper/p/7636552.html
Copyright © 2011-2022 走看看