07-14 django 66-70

______egon新书python全套来袭请看:https://egonlin.com/book.html

66.django 中 filter 和 exclude 的区别

两者取到的值都是QuerySet对象,filter选择满足条件的,exclude:排除满足条件的.

67.django 中 values 和 values_list 的区别?

  • values : queryset类型的列表中是字典
  • values_list : queryset类型的列表中是元组

68.如何使用 django orm 批量创建数据?

objs=[models.Book(title="图书{}".format(i+15)) for i in range(100)]
models.Book.objects.bulk_create(objs)

69.django 的 Form 和 ModeForm 的作用?

Form组件的主要功能如下:
   生成页面可用的HTML标签       ——>只能生成获取用户信息的那些input标签等
   对用户提交的数据进行校验,返回错误提示信息
   保留页面上用户输入的内容
   
ModelForm组件,这个组件主要就是将model与Form组件的功能结合起来,可以更加便捷的对数据进行添加、编辑以及数据的验证操作。相对于单独的Form组价来说要方便很多。但是Form组件会比这个ModelForm组件更加灵活,如果在使用Django做web开发过程中验证的数据和数据库字段相关(可以对表进行增、删、改操,注意 Many to many字段,也可以级联操作第3张关系表;),建议优先使用ModelForm,用起来更方便些,但是在使用ModelForm的时候慎用fields='__all__',获取数据库所有字段势必造成资源的浪费。

70.django 的 Form 组件中,如果字段中包含 choices 参数,请使用两种方式 实现数据源实时更新。

  • 1.重写构造函数
def__init__(self, *args, **kwargs):
     super().__init__(*args, **kwargs)
     self.fields["city"].widget.choices = models.City.objects.all().values_list("id", "name")
  • 2.利用ModelChoiceField字段,参数为queryset对象
authors = form_model.ModelMultipleChoiceField(queryset=models.NNewType.objects.all())//多选
posted @ 2019-10-23 21:32  小猿取经-林海峰老师  阅读(595)  评论(0编辑  收藏  举报