更新
我尝试使用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 管理站点。我在限制和显示与特定评论者相关的所有评论时遇到问题。我使用了 django_tools 的limit_choices_to和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)
关于如何正确执行此操作的任何想法?提前致谢!