Django开发问题总结

1.TemplateNotExit

   视图函数加载模板的时候,找不到模板.django的模板系统通过settings.py中的TEMPLATE_DIRS设置来查找模板所在的位置.首先要看settings.py中的TEMPLATE_DIRS的值与模板所在项目中的目录一致是否一致,然后设置一下TEMPLATES的值,如图:

2.Add or change a related_name argument to the definition for 'CustomerTip.create_user' or 'CustomerTip.update_user'.

<span style="font-size:18px;">class CustomerTip(models.Model):
    create_user = models.ForeignKey(User, verbose_name = '创建者')
    update_user = models.ForeignKey(User,verbose_name='更新者')
    create_time = models.DateTimeField()</span>
这个问题是‘create_user’ 和 ‘update_user’很相似,需要额外添加一个‘related_name’来区分它们,加上related_name之后,一定要确保在INSTALLED_APP 中,user所在的APP在customer所在的APP之前

3.Models aren't loaded yet.

Django的版本是1.8,  执行python manage.py runserver  时出现这个问题,settings.py, models.py都没问题,但执行数据库查询时,就报models arent`t loaded yet.后来在stackoverflow上找到解决方法,在文件的开始加上import django  django.setup()


4.No handlers could be found for logger "django"

这个问题是logging没有配置好的问题。Django 1.8的logging配置https://docs.djangoproject.com/en/1.8/topics/logging/


5.'Manager' object is not callable

Menu.objects(typ='1', key='user')
Menu.objects是一个manager对象,不是一个可调用的函数,要想获取相应的数据库记录,使用manager的方法,get,filter,all 等

6.mysql 把python的None值写入数据库会出现问题。

class Medo(models.Model):
      name = models.CharField(max_length=90, blank=True)
md = Medo()
md.name = None
md.save()
当name=None时,save()的时候会出现问题,数据保存不到数据库中

7.TypeError: can't compare offset-naive and offset-aware datetimes

参考:https://docs.djangoproject.com/en/1.8/topics/i18n/timezones/#naive-and-aware-datetime-objects


8."<PermRole: >" needs to have a value for field "permrole" before this many-to-many relationship can be used.

<pre name="code" class="python">role = PermRole(name='test', comment='')
role.sudo = sudo_objs
role.save()

 这个问题的原因就是在修改多对多属性的值的时候,要先有实例对象,在给多对多属性赋值 

role = PermRole.objects.create(name='test', comment='')
role.sudo = sudo_objs
role.save()



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值