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