https://www.jb51.net/article/186962.htm

select_related和prefetch_related

https://blog.csdn.net/weixin_42134789/article/details/100571539

数据迁移

Python2.7 + django1.11

这里我只是从这个电脑的sqlite3导出到另一台电脑的相同项目的sqlite3,没有跨不同的数据库来测试:

# 导出数据
# 不指定appname时,默认所有的app
  python manage.py dumpdata [appname] > db.json    # db.json这个名字自定义
 
# 导入数据
  python manage.py loaddata db.json

判断字段的类型

有的时候,要根据字段的不同,来进行不同的操作,比如如何判断字段是ForeignKey类还是ManyToManyField类型?

from django.db.models import ForeignKey, ManyToManyField

# 然后就可以通过isinstance来判断了
if isinstance("表中要判断的字段", ForeignKey):
    print("field_object types ForeignKey")
elif isinstance("表中要判断的字段", ManyToManyField):
    print("field_object types ManyToManyField")

模型类中choices属性的处理

如果一个用户表中有性别选项,那么就可以在字段中指定一个choices属性,它对应一个元组套元组或者,列表套元组的数据结构。

class Author(models.Model):
    user = models.CharField(max_length=32, verbose_name='用户名')
    gender = models.IntegerField(choices=(
        (1, "男"),
        (2, "女"),
    ), default=1, verbose_name='性别')

    def __str__(self):
        return self.user

取值的话:

author_obj = Author.objects.first()
print(author_obj.gender)  # 2
# 注意,只有字段中有choices参数时,才能get_gender_display
print(author_obj.get_gender_display())  # 女

参考:https://docs.djangoproject.com/zh-hans/4.0/ref/models/fields/

获取关联数据

https://github.com/jazzband/django-smart-selects/pull/218
Django - ORM进阶

Django - ORM进阶


欢迎斧正,that's all

相关文章: