以我的超級用戶'admin'身份登錄時,我可以通過任何字段篩選QuerySet。但是,當我以普通用戶身份登錄時,我只能通過「用戶」字段進行過濾。嘗試按其他字段進行篩選會返回空列表。爲什麼用戶和超級用戶篩選QuerySet的行爲有所不同?
class Question(models.Model):
user = models.ForeignKey(User, default=1)
verb = models.ForeignKey(Verb)
voice = models.ForeignKey(Voice)
...
這工作得很好:
def next_question(request):
user = request.user
q = Question.objects.filter(user=user)
這工作得很好作爲超級用戶登錄時,但未能作爲一個普通用戶(myverb
是我Verb
模型的實例):
def next_question(request):
user = request.user
q = Question.objects.filter(user=user, verb=myverb)
我是Django的新手(雖然不是Python),所以我錯過了某些需要爲常規用戶設置的權限,以解決此問題?
編輯補充示出的項目的圖像數據庫中的
例問題超級用戶, '管理員':
實施例的問題的用戶 '傑米':
我已經檢查用戶變量和關於 '傑米' 這是'>'而對於 '管理員' 是'>'。另請參閱編輯顯示數據庫中存在對象的問題。 –
它應該工作。必須是別的東西。你如何決定它是否有效。 – Rel
我懂了。在創建新用戶,更改'user'字段但不更改'verb'字段或其他字段時,我正在複製'admin'帳戶中的所有問題。這意味着我比較兩個不同的動詞對象,所以沒有結果。 –