我有2classes A
和B
:Python:如何繼承和重寫有查詢集的方法?
class A(ListView):
model=Model_name
def get_queryset(self):
instance = self.get_user_by_credential(...)
if instance:
model_instance = self.model.objects.get(id=instance.id)
some_objects= self.Model_name.objects.filter(content_id=5, object_id=model_instance.id)
return some_objects
return []
class B(A,UserObject):
model=B_model
param='foo'
def get_queryset(self):
instance = self.get_user_by_credential(...)
if instance:
model_instance = self.model.objects.get(id=instance.id, param=param)
some_objects= Model_name.objects.filter(content_id=5, object_id=model_instance.id)
return some_objects
return []
我如何可以覆蓋A
父類的方法,並添加參數的2類之間的差別僅僅是在B
的查詢集的param
到子類B
的查詢集?
我不建議作爲不明白你爲什麼得到帶有用戶對象ID的B_model對象。你怎麼知道他們會有相同的ID? –
我有很多用戶配置文件..我必須獲取當前活動用戶的model_object –
要獲取當前登錄用戶的模型對象,請使用'request.user';否則你就有一個安全漏洞,任何人都可以通過簡單地在查詢字符串中嘗試不同的ID來查看其他用戶的數據。 –