0
我希望能够根据参数从Queryset(不更改数据库)返回不同的值。我希望能够将其写入模型,以便在任何地方实施。如何根据传递的参数更改QuerySet中字段的返回值?
如果用户是某种类型的用户,我希望QuerySet字段为空(或“隐藏”或类似的东西)。
这里是一个简化的模型:
class SomeDetails(models.Model):
size = models.FloatField()
this_is_okay_to_show = models.TextField()
not_always_ok = models.TextField()
简化查询集:
qsSomeDetails = SomeDetails.objects.all()
我想not_always_ok要么返回存储在数据库中的文本值或返回一个空字符串(或“隐藏”或类似)。
模板过滤器可以工作,但它确实需要在模型中。
我不知道如何通过一个参数来使它工作。
我觉得答案就在我面前,但我只是没有看到它。
我不应该在我的示例模型中包含“用户”。我正在寻找登录用户的条件,而不是来自模型的用户。我将编辑我的示例。 如何根据发出请求的用户(request.user)获取“user_has_condidtion”进行评估?我想这就是我正在努力的部分。我知道我错过了一些恰到好处的东西。我如何获得该参数以在运行时进行评估。 – user791770 2014-10-17 00:34:13
@ user791770检查我的编辑。你在'get_new_objects'中访问请求的用户对象。 – 2014-10-17 20:44:25
这有效,但如果我添加一个筛选器到返回的查询集,它会恢复到原始值。 SomeDetails.objects.get_new_objects(request.user).filter(pk = 1)返回原始值,而不是掩码/隐藏值。 – user791770 2014-10-17 23:19:06