1

你好有没有更好的方法来做到这一点?

reply = Post(created_by = request.user.customuser_related.all()[0])

我只需要 request.user 中的唯一一个customuser对象,我不知道我是否应该做 acustomuser get(...)而不是全部,但即便如此,似乎还有一种更有效的方法。

这一行应该足以解释我要完成的工作,但如果需要,我可以添加更多信息。谢谢

4

1 回答 1

0

如果您使用的是 1.6 的开发版本,则 QuerySet API 被扩展为一个first()查询:

reply = Post(created_by = request.user.customuser_related.first())

如果没有,那么对 的相关查询CustomUserManager可能是最干净的方法:

from django.core.exceptions import ObjectDoesNotExist

class CustomUserManager(models.Manager):
    def for_user(user):
        try:
            return self.get(user=user)
        except ObjectDoesNotExist:
            return None

reply = Post(created_by = CustomUser.objects.for_user(request.user))
于 2013-05-30T06:21:32.033 回答