1.django自定义字段类型,实现非主键字段的自增#-*-encoding:utf-8-*-fromdjango.db.models.fieldsimportField,IntegerFieldfromdjango.coreimportchecks,exceptionsfromdjango.utils.translationimportugettext_lazyas_classAutoIncreField(Field):description=_("Integer")empty_strings_allowed=Falsedefault_error_messages={'invalid':_("'%(value)s'valuemustbeaninteger."),}def__init...
继续阅读 >
分类:django
2020
09-24
09-24
Django ModelForm操作及验证方式
一、内容回顾Model-数据库操作-验证classA(MOdel):user=email=pwd=Form-classLoginForm(Form):email=fields.EmailField()user=pwd=-is_valid->每一个字段进行正则(字段内置正则)+clean_字段->clean(__all__)->_post_clean-cleand_data-error-------->推荐Form<---------二、ModelForm操作及验证Model+Form==>ModelForm。model和form的结合体,所以有以下功能:数据验证数据库操作model有操作数据库...
继续阅读 >
2020
09-24
09-24
动态设置django的model field的默认值操作步骤
问题背景django的modelfield需要动态设置默认值,具体案例如下:原始代码如下,model是Application,其中字段ignore_fort的默认值设置为FalseclassApplication(TimestampedModel):name=models.CharField(max_length=255,null=True)ignore_fort=models.BooleanField(default=False)然而现在有这样一个需求:default需要根据某个变量ENV进行动态设置,如果ENV是UAT或者FAT(不区分大小写,具体分支,比如uaT01也可以),...
继续阅读 >
2020
09-24
09-24
django 实现手动存储文件到model的FileField
通过POST请求,上传了文件,想要将文件存储在模型的FileField中request.FILES中的值均为UploadedFile类文件对象表单上传的文件对象存储在类字典对象request.FILES中,表单格式需为multipart/form-dataFieldFile.save(name,content,save=True)name:命名文件名content:必须是django.core.files.File或django.core.files.base.ContentFile二者之一的一个实例fromdjango.core.files.baseimportContentFile#fromdjango.core.file...
继续阅读 >
2020
09-24
09-24
解决django FileFIELD的编码问题
当获取FileField数据时会出现编码问题在数据库里显示的是D:\python项目\wxmkczpy\uploadfile\QQ截图20190210180915.png而取出后变成D%3A/python%E9%A1%B9%E7%9B%AE/wxmkczpy/uploadfile/QQ%E6%88%AA%E5%9B%BE20190210180915.png这是url编码所以可以用urllib的parse模块解决fromurllibimportparse#Createyourtestshere.a="D%3A/python%E9%A1%B9%E7%9B%AE/wxmkczpy/uploadfile/QQ%E6%88%AA%E5%9B%BE20190210180915.png"st...
继续阅读 >
2020
09-24
09-24
Django 删除upload_to文件的步骤

2020
09-24
09-24
对django 2.x版本中models.ForeignKey()外键说明介绍
下面是代码classGroupInfos(models.Model):uid=models.AutoField(primary_key=True)caption=models.CharField(max_length=32,unique=True)ctime=models.DateTimeField(auto_now_add=True,null=True)uptime=models.DateTimeField(auto_now=True,null=True)classUserInfos(models.Model):username=models.CharField(max_length=32,blank=True,verbose_name='用户名')password=models.CharField(max_length=...
继续阅读 >
2020
09-24
09-24
基于Django OneToOneField和ForeignKey的区别详解
根据Django官方文档介绍:Aone-to-onerelationship.Conceptually,thisissimilartoaForeignKeywithunique=True,butthe“reverse”sideoftherelationwilldirectlyreturnasingleobject.OneToOneField与ForeignKey加上unique=True效果基本一样,但是用OneToOneField反向关联会直接返回对象。相反地,使用ForeignKey,反向关联后会返回QuerySet。例子:fromdjango.dbimportmodelsclassEngine(models.Model)...
继续阅读 >
2020
09-24
09-24
django 扩展user用户字段inlines方式
model:classProfile(models.Model):user=models.OneToOneField(User,on_delete=models.CASCADE,verbose_name='昵称')nickname=models.CharField(max_length=20)def__str__(self):return'<Profile:%sfor%s>'%(self.nickname,self.user.username)admin.pyfromdjango.contribimportadminfromdjango.contrib.auth.modelsimportUserfrom.modelsimportProfileclassProfileInline(admin.StackedInline):...
继续阅读 >
2020
09-24
09-24
解决django xadmin主题不显示和只显示bootstrap2的问题

2020
09-24
09-24
利用django model save方法对未更改的字段依然进行了保存

2020
09-24
09-24
基于Django signals 信号作用及用法详解

2020
09-24
09-24
浅谈django 模型类使用save()方法的好处与注意事项
如下所示:defuser_degree(self):degree=self.user.update_grade()returndegreedefsave(self,*args,**kwargs):self.degree=self.user_degree()self.p1_user=self.get_p1()self.p2_user=self.get_second()self.p3_user=self.get_third()self.first_get_money=self.get_first_commission()self.second_get_money=self.get_seconds()self.third_get_money=self.get_thirds()self.off_price...
继续阅读 >
2020
09-24
09-24
Django 实现对已存在的model进行更改
1.删除app下的migrations中的数据库操作的.py记录2.删除数据库django_migrations中相应记录3.pythonmanage.pymakemigrationsyourappname4.pythonmanage.pymigrateyourappname补充知识:djangomodelsave方法对未更改的字段依然进行了保存如下所示:obj=Obj.objects.get(id=1)printobj.name#此时name的值假定为'abc'defhandler(oid):obj=Obj.objects.get(id=oid)obj.name='123'obj.save()handler(obj.id)o...
继续阅读 >
2020
09-24
09-24
浅谈Django QuerySet对象(模型.objects)的常用方法

2020
09-24
09-24
django使用F方法更新一个对象多个对象字段的实现
通常情况下我们在更新数据时需要先从数据库里将原数据取出后放在内存里,然后编辑某些字段或属性,最后提交更新数据库。使用F方法则可以帮助我们避免将所有数据先载入内存,而是直接生成SQL语句更新数据库。假如我们需要对所有产品的价格涨20%,我们通常做法如下。当产品很少的时候,对网站性能没影响。但如果产品数量非常多,把它们信息全部先载入内存会造成很大性能浪费。products=Product.objects.all()forproductinproduc...
继续阅读 >