django xadmin 模型创建时遇到的问题

2017-07-10 17:29:12 +08:00
 idblife
migrations.CreateModel(
name='Log',
fields=[
('id', models.AutoField(verbose_name='ID', auto_created=True, primary_key=True, serialize=False)),
('action_time', models.DateTimeField(verbose_name='action time', editable=False, default=django.utils.timezone.now)),
('ip_addr', models.GenericIPAddressField(null=True, verbose_name='action ip', blank=True)),
('object_id', models.TextField(null=True, verbose_name='object id', blank=True)),
('object_repr', models.CharField(verbose_name='object repr', max_length=200)),
('action_flag', models.CharField(verbose_name='action flag', max_length=32)),
('message', models.TextField(verbose_name='change message', blank=True)),
('content_type', models.ForeignKey(null=True,
verbose_name='content type',
# to_field=django.db.models.deletion.SET_NULL,
blank=True,
to='contenttypes.ContentType')),
('user', models.ForeignKey(verbose_name='user',
to=settings.AUTH_USER_MODEL,
# to_field=django.db.models.deletion.CASCADE
)),
],

注释掉的这两行是出问题的地方
python 3.5
django 1.8
注释掉之后可以创建表,但是使用的时候报:
FieldDoesNotExist: User has no field named <function CASCADE at 0x0000000004427A60>
3374 次点击
所在节点    Python
2 条回复
boatyaya
2017-07-11 15:29:34 +08:00
ForeignKey.to_field 的值可以是 django.db.models.deletion.CASCADE ???

关联到的被关联对象的字段名称。默认地,Django 使用关联对象的主键。如果你引用一个不同的字段,那么这个字段必须是 unique=True。
idblife
2017-07-11 18:02:08 +08:00
@boatyaya
这也是我最疑惑的地方
xadmin 生成的 migration 就是这样的,很诡异

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/374325

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX