use*_*105 8 python django models
快速(可能是愚蠢的)问题.这是我网站的流程:用户登录并重定向到自定义管理页面.在此管理页面上,他们可以制作"个人资料".我想将他们创建的配置文件与其用户数据相关联,以便1个用户关联到1个配置文件.
由于某种原因,以下是行不通的(只是试图联系
UserAdmin.Models
from django.db import models
from django.contrib.auth.models import User
class Profile(models.Model):
username = models.ForeignKey(User)
firstname = models.CharField(max_length=200)
lastname = models.CharField(max_length=200)
email = models.EmailField(max_length=200)
def __unicode__(self):
return self.username
Run Code Online (Sandbox Code Playgroud)
UserAdmin.Views
def createprofile(request):
user = User.objects.get(id=1)
profile = Profile(username=user, firstname='Joe', lastname='Soe', email='Joe@Soe.com')
profile.save()
Run Code Online (Sandbox Code Playgroud)
我一直得到:table useradmin_profile没有名为username_id的列
有任何想法吗?赞赏.
编辑:
删除我的数据库并运行一个新的syncdb,更改为username = models.OneToOneField(User).现在我得到了无法分配"u'superuser":"Profile.username"必须是"用户"实例.
UserAdmin.Models
from django.db import models
from django.contrib.auth.models import User
class Profile(models.Model):
user = models.OneToOneField(User)
def __unicode__(self):
return self.user.get_full_name()
Run Code Online (Sandbox Code Playgroud)
UserAdmin.Views
def createprofile(request):
user_ = User.objects.get(pk=1)
profile = Profile(user=user_)
profile.user.first_name = 'Joe'
profile.user.last_name = 'Soe'
profile.user.email = 'Joe@Soe.com'
profile.user.save()
profile.save()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6571 次 |
| 最近记录: |