我遵循以下指南:http://www.turnkeylinux.org/blog/django-profile它工作得很好,除了我似乎無法將ForeignKey保存到用戶配置文件。UserProfile模型不保存ForeignKeys
PCBuild模型
from django.contrib.auth.models import User
from django.db import models
class PCBuild(models.Model):
name = models.CharField(max_length=50)
owner = models.ForeignKey(User)
用戶配置模型
import datetime
import md5
from apps.pcbuilder.models import PCBuild
from django.contrib.auth.models import User
from django.db import models
class UserProfile(models.Model):
user = models.OneToOneField(User)
email_hash = models.CharField(max_length=200) #MD5 hash of e-mail
current_build = models.ForeignKey(PCBuild,
related_name='current_build', null=True, blank=True)
def __unicode__(self):
return self.user.email
User.profile = property(lambda u: UserProfile.objects.get_or_create(
user=u,
email_hash=md5.new(u.email).hexdigest())[0])
的問題
>>> from django.contrib.auth.models import User
>>> from apps.pcbuilder.models import PCBuild
>>> from django.shortcuts import get_object_or_404
>>> user = get_object_or_404(User, pk=2)
>>> user
<User: Trevor>
>>> pcbuild = get_object_or_404(PCBuild, pk=11)
>>> pcbuild
<PCBuild: StackOverflowBuild>
>>> pcbuild.owner
<User: Trevor>
>>> user.profile.email_hash
u'd41d8cd98f00b204e9800998ecf8427e'
>>> user.profile.current_build = pcbuild
>>> user.profile.save()
>>> user.profile.current_build
# nothing is stored/outputted - this is the problem!
我是新來的Django,儘管谷歌一直樂於助人,到目前爲止,這個我還沒幾個小時後征服例。如果需要更多關於這個問題的信息,我會很樂意提供!
謝謝。
編輯:
事情我已經發現,可能是有用的(但並沒有解決我的具體問題):
謝謝!工作很好。現在我必須閱讀信號。 – 2012-03-08 01:05:21
@TrevorSenior:查看我的更新。 – sdolan 2012-03-08 01:32:05
啊謝謝。我已經繼續並且改變了從'user.profile'到'user.get_profile()'的所有內容,但是如果我想稍後更改名稱,我會注意。 – 2012-03-08 01:44:32