I have 2 django models like this:
class UserProfile(models.Model):
user = models.OneToOneField(User)
organisation = models.CharField(max_length=200)
class Submission(models.Model):
user = models.ForeignKey(User)
date_submission = models.DateTimeField(db_index=True, default=datetime.now())
date_published = models.DateTimeField(db_index=True, null=True)
status = models.CharField(db_index=True, max_length=4000)
logfile = models.TextField(db_index=False)
如果每个提交物体都由正常的django用户拥有,每个用户都有一个用户查询文件,使用AUTH_PROFILE。 教育部采取正常方式。
这符合你的期望,即能够看到用户档案物体的组织领域:
Submission.objects.all()[0].user.userprofile.organisation
如果想将提交清单(出口到json)序号,通常是指:
Submission.objects.all().values()
# or for more control of fields
Submission.objects.all().values( status , date_submission )
# to traverse a relationship.. get info from the User object
Submission.objects.all().values( user__username )
工作罚款。 我的问题是:
Submission.objects.all().values( user__userprofile__organisation )
raise FieldError("Invalid field name: %s " % name)
django.core.exceptions.FieldError: Invalid field name: user__userprofile__organisation
so it seems that the UserProfile is a special case . This was discussed here: Django query : Call values() on user__userprofile
但是,解决办法不利于我(我很相信)。
这是否是对价值观方法的一种限制? 任何人都知道如何获得同样的价值产出,但能够推翻用户档案模式?
感谢任何想法
- i