错误提示:
accounts.profile: Reverse query name for field ‘mentor’ clashes with related field ‘User.profile’. Add a related_name argument to the definition for ‘mentor’.
django.db.utils.IntegrityError: accounts_profile.hire_date may not be NULL
django.db.utils.IntegrityError:accounts_profile.mentor_id may not be NULL
出错代码:
#models.py
class Profile(models.Model):
user = models.OneToOneField(User)
hire_date = models.DateField()
mentor = models.ForeignKey(User)
pl = models.ForeignKey(User)
出错原因和解决方案:
以上3个错误都是在制作User.Profile时出现的。
第一个错误,是因为在同一个model中为两个字段指定同一个外键,解决方法在错误提示中已经告知了:添加related_name。
第二个错误,让hire_date字段可以为空即可。
#models.py
class Profile(models.Model):
user = models.OneToOneField(User)
hire_date = models.DateField( blank = True)
mentor = models.ForeignKey(User, related_name='trainees')
pl = models.ForeignKey(User, related_name='team_members')
第三个错误很有趣,它的提示和第二个错误一样,于是我就在mentor和pl字段上添加了null = True,但运行时它又报了第二个错误,最后将代码改成以下形式以后正常了:
#models.py
class Profile(models.Model):
user = models.OneToOneField(User)
hire_date = models.DateField( null = True)
mentor = models.ForeignKey(User, null = True, related_name='trainees')
pl = models.ForeignKey(User, null = True, related_name='team_members')
之前的blank = True突然失效了。具体是Django本身的问题还是其他问题还在研究中。
错误提示
Error: Can’t find the file ‘settings.py’ in the directory containing ‘manage.py’. It appears you’ve customized things.
You’ll have to run django-admin.py, passing it your settings module.
(If the file settings.py does indeed exist, it’s causing an ImportError somehow.)
You’ll have to run django-admin.py, passing it your settings module.
(If the file settings.py does indeed exist, it’s causing an ImportError somehow.)
出错原因和解决方案:
这个问题和代码无关。settings.py文件好好的放着,但就是提示找不到文件。我在Stackoverflow上看到有人回答,说是因为在App中添加了下面这句,引起 “circular dependency” 导致的,但去掉这句以后问题依旧。但同样的代码放到windows环境下却一点问题也没有。
from django.db import models
大佬那么最后一个在windows环境下也报错。
很不错的博客,长期关注!
在详细点。。。内容不错