egi*_*dra 3 python django django-south
我想重置我的Django项目的数据库,所以我做了以下步骤:
python manage.py syncdbpython manage.py migrate users --fake在我创建一个新帐户并登录后,我收到以下错误消息:
no such table: users_userprofile
Run Code Online (Sandbox Code Playgroud)
这是我的用户model.py看起来像:
class UserProfile(models.Model):
user = models.OneToOneField(User)
joined_goals = models.ManyToManyField(Goal, related_name="joined_goals")
followingGoals = models.ManyToManyField(Goal, related_name="following_goals")
def __unicode__(self):
return self.user.username
def get_goals(self):
try:
goals = Goal.objects.filter(user=self.user)
return goals
except Goal.DoesNotExist:
return []
def create_user_profile(sender, instance, created, **kwargs):
if created:
userProfile = UserProfile.objects.create(user=instance)
post_save.connect(create_user_profile, sender=User)
Run Code Online (Sandbox Code Playgroud)
因此,有一个UserProfile类,但South似乎没有使表保存用户配置文件.当我这样做时python manage.py schemamigration users --auto,它说似乎没有任何改变.如何创建userprofiles表?
我有同样的问题.事实证明,使用South时存在循环依赖性.要解决此问题,请不要在运行syncdb时创建超级用户,而是运行:
python manage.py createsuperuser
Run Code Online (Sandbox Code Playgroud)
使用syncdb创建数据库之后.此时,您的配置文件表将被创建,post_save信号将成功.
| 归档时间: |
|
| 查看次数: |
1286 次 |
| 最近记录: |