1

こんにちは、これを行うためのより良い方法はありますか?

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

request.user からの唯一のcustomuserオブジェクトが必要なだけです。その代わりに a を実行する必要があるかどうかはわかりませんがcustomuser 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 に答える