为什么每次我使用`makemigrations`时都会导致特定模型迁移?

我有一个名为“ proxy”的Django应用程序。 models.py的内容如下所示:

from __future__ import unicode_literals
from django.db import models


class Proxy(models.Model):
    class Meta:
        verbose_name = u"Прокси"
        verbose_name_plural = u"Прокси"

    TYPE = ((1,"http"),(2,"socks4"),(3,"socks5"))

    name = models.CharField(max_length=200,verbose_name=u'Прокси')
    label = models.CharField(max_length=200,verbose_name=u'Лейбл')
    ip = models.CharField(max_length=200,verbose_name=u"IP")
    port = models.CharField(max_length=200,verbose_name=u'Порт')
    login = models.CharField(
        max_length=200,verbose_name=u'Логин',null=True,blank=True)
    password = models.CharField(
        max_length=200,verbose_name=u'Пароль',blank=True)
    kind = models.IntegerField(
        verbose_name='Тип Прокси',default=1,choices=TYPE)
    expiration_date = models.DateTimeField(
        verbose_name="Срок окончания валидности",blank=True)

    def __str__(self):
        return self.name


class ProxyList(models.Model):
    class Meta:
        verbose_name = "Лист"
        verbose_name_plural = "Листы"

    name = models.CharField(max_length=200,verbose_name=u'Название листа')
    alias = models.SlugField(max_length=300,verbose_name=u'Адрес листа')
    proxies = models.ManyToManyField(Proxy,verbose_name=u'Прокси')

    def __str__(self):
        return self.name

我面临的问题是,每次我尝试运行makemigrations时,它都会创建无意义的迁移文件,如下所示:

makemigrations输出:

Migrations for 'proxy':
  proxy/migrations/0112_auto_20191110_1658.py
    - Alter field proxies on proxylist
Migrations for 'serversettings':
  serversettings/migrations/0052_auto_20191110_1658.py
    - Alter field top50_proxy on serversettings
Migrations for 'top50':
  top50/migrations/0066_auto_20191110_1658.py
    - Alter field proxy on scriptproxy

生成的迁移文件:

# Generated by Django 2.2.1 on 2019-11-10 13:58

from django.db import migrations,models


class Migration(migrations.Migration):

    dependencies = [
        ('proxy','0111_auto_20191110_1640'),]

    operations = [
        migrations.AlterField(
            model_name='proxylist',name='proxies',field=models.ManyToManyField(to='proxy.Proxy',verbose_name='Прокси'),),]

相关模型迁移文件只是AlterField,其参数与我在其Proxy关系字段中指定的参数相同。

我真的不知道是什么原因造成的。我的django设置文件未提及与proxy应用程序相关的任何特定内容。也许这是一个命名问题,我一无所知?是否有我不应该使用的Django应用程序名称的保留列表(例如代理)?

如何摆脱这些“自动迁移”?

bbb06070241 回答:为什么每次我使用`makemigrations`时都会导致特定模型迁移?

也许您可以尝试像在迁移文件中那样更改代理定义:

field=models.ManyToManyField(to='proxy.Proxy',verbose_name='Прокси')

您所说的proxy可能有特殊含义,而Django可能会尝试更改定义以避免冲突。

本文链接:https://www.f2er.com/3128968.html

大家都在问