0
私はItemAdmin内django ManyToManyFieldのQuerysetフィルタ?
def queryset(self, request):
をオーバーライドすることで、結果を制限しようとしています。
私は、request.userにユーザープロファイルを使用してカテゴリアクセスが許可されているアイテムのみを表示します。
class Profile(models.Model):
user = models.ForeignKey(auth.User, unique=True)
categoryAccess = models.ManyToManyField(Category ...)
class Item(models.Model):
category = models.ForeignKey(Category ...)
私はかなりの構文の権利を得ることができない....私は
class ItemAdmin(admin.ModelAdmin):
def queryset(self, request):
qs = super(ItemAdmin, self).queryset(request)
return qs.filter(category__in=request.user.objects__profile__categoryAccess)
任意のアイデアのようなものをしようとしていますか?どうもありがとう!
ちょっとダニエル!ありがとうございました...私はOneToOneにフィールドを変更しましたが、プロファイル一致クエリは存在しません。 – cssndrx
よろしく!それは実際には私の悪いことです。作成時にユーザーがプロファイルを持っていなかったため、コードが壊れました。例外をキャッチして空のリストを返すだけでいいですか?修正をありがとう:) – cssndrx
ちょうど確認する...後方の関係のuser.profileは正しく動作するでしょうか?ドキュメントでは、後方の関係が__構文で可能であることがわかりました。しかし、私がプロファイルを作成してフィルターをかけようとすると、私は非伝統的なDjangoエラーを受け取ります。データベースのエラー:データベースのインストールに問題があります。適切なデータベーステーブルが作成されていることを確認し、適切なユーザーがデータベースを読み込めるようにしてください。誰もこれを見たことがありますか? – cssndrx