Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 正在创建model.manager,我想我删除了数据库_Python_Django_Django Models_Django Migrations - Fatal编程技术网

Python 正在创建model.manager,我想我删除了数据库

Python 正在创建model.manager,我想我删除了数据库,python,django,django-models,django-migrations,Python,Django,Django Models,Django Migrations,我使用的是Django 2.2.7、python 3.7.4和windows 10 我遵循django文档创建一个项目。我想创建一个查询集,但我想使用我的字段名和对象。通过遵循教程,我创建了model.Manager(或者我认为是这样)。我执行了python manage.py makemigrations和python manage.py migrate,但在迁移文件中,我似乎删除了字段,可能还删除了数据库,我不确定 我尝试的是: DB名称:地区 将两个字段名(“congressional_d

我使用的是Django 2.2.7、python 3.7.4和windows 10

我遵循django文档创建一个项目。我想创建一个查询集,但我想使用我的字段名和对象。通过遵循教程,我创建了model.Manager(或者我认为是这样)。我执行了
python manage.py makemigrations
python manage.py migrate
,但在迁移文件中,我似乎删除了字段,可能还删除了数据库,我不确定

我尝试的是: DB名称:地区 将两个字段名(“congressional_district和zcta”)从“objects”更改为“Manager model”中使用它们的名称进行专门调用。我是否混淆了自己

from django.db import models

class district(models.Model):
    congressional_district = models.IntegerField(default=0)
    zcta = models.IntegerField(default = 0, primary_key=True) #can integers be limited like Charfields?

    congressional_district = models.Manager()
    zcta = models.Manager()

    def __str__(self):
        return f'{self.congressional_district} {self.zcta}' ```

Migration file
操作=[

migrations.AlterModelManagers(
    name='district',
    managers=[
        ('congressional_district', django.db.models.manager.Manager()),
    ],
),
 migrations.RemoveField(
     model_name='district',
     name='congressional_district',
 ),
 migrations.RemoveField(
     model_name='district',
     name='zcta',
 ),
 migrations.AddField(
     model_name='district',
     name='id',
     field=models.AutoField(auto_created=True, default=django.utils.timezone.now, primary_key=True, 
serialize=False,详细的_name='ID'), preserve_default=False, ), ]


是的,据我所知,您为管理者替换了字段的变量,这样Django就知道您从模型中删除了变量。如果您在生产数据库上运行迁移,您将丢失所有数据data@JuanMiGabarron这是否意味着我必须删除/strip models.manager并重新加载所有数据?我阅读了文档,但显然没有取消了解为什么或何时使用models.Manager.Well model Manager通常有一个人性化的方法来进行查询筛选,您在所有模型上都有一个通用的管理器“objects”,当您执行
district.objects.all()
假设您想要一个类似
district.objects.by zcta(zcta\u编号)的筛选器时,可以使用它
您需要这样做:class DistrictQuerySet(models.QuerySet):def byzcta(self,number):返回self.filter(zcta=number),然后在您的模型中:class district(models.model):…objects=DistrictQuerySet()@JuanMiGabarron,我对zcta_number感到困惑。这是一个定义的变量吗?