Django 1.11.x版本和python3.7版本不兼容
解决方法:
打开文件(右键notepad++或pycharm打开),
"D:\xxx\Python\Python37\lib\site-packages\django\contrib\admin\widgets.py"
找到152行: '%s=%s' % (k, v) for k, v inparams.items(),这个widgets.py文件错了,只需要把上面.items(),这个后面的逗号去掉就可以了,或者将django升级到 django 2.0及以上版本
注:D:\xxx\Python\Python37为自己的计算机Python的安装目录
Django 中 mysqlclient报错
错误信息:
django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or neweris required; you have 0.9.3.
解决办法:
方法一:找到Django目录下的base.py文件将以下语句注释:
if version < (1, 3, 13):raiseImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you have %s.' %Database.version)
方法二:将init.py中
import pymysql
pymysql.install_as_MySQLdb()
更改为
import MySQLdb
Django 验证码
pip install django-simple-captcha
若验证码加载不出来手动安装Vera.ttf........\Lib\site-packages\captcha\fonts\(...为自己计算机的Python安装路径)选中该字体,然后右键安装即可。
Django自定义错误界面报错handler404,handler500
错误信息:
Thecustom handler404 view 'index.views.page_not_found' does not take the correctnumber of arguments (request, exception).
解决办法:
在一个views中关联html,然后再将views和url建立隐射关系。注意:解决两个问题的关键在于在Django2.2.2下,404的错误不能有参数:exception,但是500的错误必须有exception,如此解决问题。
from django.shortcuts import render# 404def page_error(request):return render(request, 'error404.html',status=404)# 500def page_not_found(request, exception):return render(request, 'error404.html',status=500)
windows下使用Django前台无法载入css的解决办法
前台、后台如果无法加载css等样式。
这是因为你安装的某些IDE 或者其他更改了注册表导致的,
系统的注册表\HKEY_CLASSES_ROOT\.css的Content Type不是text/css,修改即可。改完记得重启开发服务器并按Ctrl+F5强制刷新页面。
Django 返回流文件时使用中文文件名的问题
# Python3from urllib.parse import quoteresponse['Content-Disposition'] = 'attachment;filename={0}.xlsx'.format(quote(filename))
Django-admin 导出excle 数值范围筛选
class ExportExcelMixin(object):.......class StatusFilter(SimpleListFilter):title = '分数'parameter_name = '分数'def lookups(self, request, model_admin):return [(1, '<60'), (2,'61-80'), (3, '81-100')]def queryset(self, request, queryset):if self.value() == '3':returnqueryset.filter(mark__gt=80)elif self.value() == '1':returnqueryset.filter(mark__lt=60)elif self.value() == '2':returnqueryset.filter(mark__gte=61, mark__lte=80)@admin.register(Achievement)class AchievementAdmin(admin.ModelAdmin,ExportExcelMixin):list_display = ['college', 'major','classes', 'student','teacher', 'mark', 'c_time']list_filter = (StatusFilter,)search_fields = ('student__name',)date_hierarchy = 'c_time'actions = ['export_as_excel']
Django上传文件
model:file =models.FileField(verbose_name="申请文件")view:myFile =request.FILES.get('code')cl.code=myFile更新文件<label><span>目前文件:</span><img src="/media/{{ data.code}}" width="80px" height="100"/>{{ data.code }}<input type="hidden" id ="muqian" name="muqian" value="{{ data.code}}" /></label><label class="elegant-aero label"><span>文件更新</span><input type="file" id ="code" name="code" value="{{ data.code }} "/></label>
Django邮箱配置
在settings.py中添加如下信息:
EMAIL_HOST = 'smtp.sina.com'EMAIL_PORT = 25EMAIL_HOST_USER = 'gwfy2020@sina.com'EMAIL_HOST_PASSWORD = '授权码,不是密码'EMAIL_USE_TLS = FalseEMAIL_FROM = 'gwfy2020@sina.com'
Django 根据一个表的值自动更新另一个表的值
class Consume(models.Model):cno = models.CharField(max_length=16,verbose_name=u"编号")name = models.CharField(max_length=16,verbose_name=u"名称")unit = models.DecimalField(max_digits=8,decimal_places=2,verbose_name=u"单价")num =models.IntegerField(verbose_name=u"数量")price =models.DecimalField(max_digits=8, decimal_places=2,verbose_name=u"总价")cdate =models.DateField(verbose_name=u"日期")def __str__(self):return str(self.id)def save(self, *args, **kwargs):# do this only whencreatedif not self.pk:# dosomething you want likedailyConsumption, is_created =DailyConsumption.objects.get_or_create(cno=self.cno,name=self.name)ifdailyConsumption.num:dailyConsumption.num += self.numelse:dailyConsumption.num = self.numdailyConsumption.save()super().save(*args,**kwargs)class Meta:db_table='consume'verbose_name = '消耗采购信息'verbose_name_plural =verbose_nameclass ConsumptionRegister(models.Model):cno = models.CharField(max_length=16,verbose_name=u"编号")name = models.CharField(max_length=16,verbose_name=u"名称")num = models.IntegerField(verbose_name=u"数量")def __str__(self):return str(self.id)def save(self, *args, **kwargs):# do this only whencreatedif not self.pk:# dosomething you want likedailyConsumption, is_created =DailyConsumption.objects.get_or_create(cno=self.cno,name=self.name)ifdailyConsumption.num:dailyConsumption.num -= self.numelse:dailyConsumption.num = self.numdailyConsumption.save()super().save(*args,**kwargs)class Meta:db_table='consumptionRegister'verbose_name = '消耗登记'verbose_name_plural =verbose_nameclass DailyConsumption(models.Model):cno = models.CharField(max_length=16,verbose_name=u"编号")name = models.CharField(max_length=16,verbose_name=u"名称")num =models.IntegerField(verbose_name=u"库存数量",null=True,blank=True)alarm =models.IntegerField(verbose_name=u"报警数量",blank=True,null=True)def __str__(self):return str(self.id)class Meta:db_table='dailyConsumption'verbose_name = '消耗管理'verbose_name_plural =verbose_name
文章转载自关外飞鹰,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




