我一直试图在Django 1.9中为我的模型添加一个外键,并在Django Docs上按照on_delete='DO_NOTHING'
选项添加,但版本为1.10。我没有任何问题地运行python manage.py makemigrations
,但当我试图运行python manage.py migrate
时,我得到了错误:
django.core.exceptions.FieldDoesNotExist: Entrance has no field named u'DO_NOTHING'
意识到我的错误,我将选项更改为on_delete=models.DO_NOTHING
并再次运行makemigrations
和migrate
,但我仍然遇到同样的错误:
django.core.exceptions.FieldDoesNotExist: Entrance has no field named u'DO_NOTHING'
在迁移文件中看起来有问题。不太熟悉Django的内部工作原因所以我不知道在哪里解决这个问题。有什么想法吗?
答案 0 :(得分:0)
当您使用// from the given entity, track back to entity1, the start of the chain
MATCH (n3:entity3)<-[:Relationentitys*0..4]-(en1:entity1)
WHERE n3.id='5084712c801f' AND n3.tag='entity3'
// now get the full chain from entity1
MATCH (en1)-[:Relationentitys*0..4]->(en)
RETURN COLLECT(en) as entities
添加迁移时,django会生成迁移。然后,您使用on_delete='DO_NOTHING'
生成了新的迁移。因此,您必须删除on_delete=models.DO_NOTHING
中的两个迁移,然后再次执行makemigrations。
希望它有所帮助!
答案 1 :(得分:0)
那应该是
on_delete=models.DO_NOTHING
答案 2 :(得分:0)
在db中查看django_migrations表。在那里查找上次迁移的迁移文件 并将此文件与下一个迁移文件进行比较。 如果数据库中的所有内容都正常,您也可以手动添加上次迁移文件。
答案 3 :(得分:-1)
对我来说有用的是进入@Configuration
@EnableResourceServer
protected static class ResourceServerConfiguration extends
ResourceServerConfigurerAdapter {
public void configure(HttpSecurity http) throws Exception {
http.csrf().disable()
.authorizeRequests()
.anyRequest().permitAll();
}
}
目录并浏览my_project/myapp/migrations
个文件并通过删除相应的*.py
项来修复operations
变量(下面) to_field='DO_NOTHING'
项。希望这不会造成其他问题。
field