0

アップデート

私はCuserMiddlewareを使用しようとし、次のように使用して現在のユーザーを取得しました。

 def limit_by_username():
     c_username = ""
     c_user = CuserMiddleware.get_user()
     if c_user is not None:
         c_username = c_user[0].username
     return {'reviewer__user__username__exact':c_username}

 r_list_of_reviews = models.ForeignKey('Review', blank=True, null=True, limit_choices_to=limit_by_username())    

ただし、レビューのリストはまだ表示されていません。また、アイデアをいただければ幸いです。

更新を終了

私はdjango管理サイトを使用/拡張しています。特定のレビュアーに関連するすべてのレビューを制限して表示することに問題があります。limit_choices_toと django_tools のThreadLocal.get_current_user() を使用しましたが、機能せず、特定のレビュアーのレビュー オブジェクトが表示されません。以下は私のモデルです:

class Reviewer(models.Model):
    id = models.AutoField(primary_key=True)
    r_user = models.OneToOneField(User)
    r_list_of_reviews = models.ForeignKey('Review', blank=True, null=True, limit_choices_to={'reviewer__r_user__username__exact': ThreadLocal.get_current_user()})

class Review(models.Model):
    USER_RATING = (
            (1, '1'),
            (2, '2'),
            (3, '3'),
            (4, '4'),
            (5, '5'),
    )
    id = models.AutoField(primary_key=True)
    reviewer = models.ForeignKey('Reviewer')
    review_rating = models.IntegerField(choices=USER_RATING, default=0)

これを正しく行う方法についてのアイデアはありますか?前もって感謝します!

4

1 に答える 1