Python Django自定义字段继承ForeignKey解构()失败
创建从ForeignKey继承并将字段设置为的自定义字段时,存在解构问题 简化示例(models.py) 当Python Django自定义字段继承ForeignKey解构()失败,python,django,Python,Django,创建从ForeignKey继承并将字段设置为的自定义字段时,存在解构问题 简化示例(models.py) 当python manage.py makemigrations时,会引发以下异常 Traceback (most recent call last): File "manage.py", line 10, in <module> execute_from_command_line(sys.argv) File "/usr/local/lib/python2.7/
python manage.py makemigrations
时,会引发以下异常
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 385, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 377, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 288, in run_from_argv
self.execute(*args, **options.__dict__)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 338, in execute
output = self.handle(*args, **options)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/commands/makemigrations.py", line 111, in handle
convert_apps=app_labels or None,
File "/usr/local/lib/python2.7/dist-packages/django/db/migrations/autodetector.py", line 40, in changes
changes = self._detect_changes(convert_apps, graph)
File "/usr/local/lib/python2.7/dist-packages/django/db/migrations/autodetector.py", line 139, in _detect_changes
self.generate_renamed_models()
File "/usr/local/lib/python2.7/dist-packages/django/db/migrations/autodetector.py", line 413, in generate_renamed_models
model_fields_def = self.only_relation_agnostic_fields(model_state.fields)
File "/usr/local/lib/python2.7/dist-packages/django/db/migrations/autodetector.py", line 79, in only_relation_agnostic_fields
del deconstruction[2]['to']
KeyError: u'to'
我尝试了一些变化(例如将User作为超级调用的第一个arg),但是,结果基本相同,或者会产生额外的问题。有没有更好的/不同的方法来正确地实现对此类自定义字段的迁移支持?您是否找到了解决方案?这不是一个令人满意的解决方案。有关更多详细信息,请参阅。现在,我已经接受了我在原始问题中提到的次优解决方案。
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 385, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 377, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 288, in run_from_argv
self.execute(*args, **options.__dict__)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 338, in execute
output = self.handle(*args, **options)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/commands/makemigrations.py", line 111, in handle
convert_apps=app_labels or None,
File "/usr/local/lib/python2.7/dist-packages/django/db/migrations/autodetector.py", line 40, in changes
changes = self._detect_changes(convert_apps, graph)
File "/usr/local/lib/python2.7/dist-packages/django/db/migrations/autodetector.py", line 139, in _detect_changes
self.generate_renamed_models()
File "/usr/local/lib/python2.7/dist-packages/django/db/migrations/autodetector.py", line 413, in generate_renamed_models
model_fields_def = self.only_relation_agnostic_fields(model_state.fields)
File "/usr/local/lib/python2.7/dist-packages/django/db/migrations/autodetector.py", line 79, in only_relation_agnostic_fields
del deconstruction[2]['to']
KeyError: u'to'
from django.db import models, migrations
from django.conf import settings
import bar.models
class Migration(migrations.Migration):
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.CreateModel(
name='FooBar',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('user', bar.models.UserField(to=settings.AUTH_USER_MODEL)),
],
options={
},
bases=(models.Model,),
),
]