我試圖將數據從DJANGO視圖推送到Tables對象中,並將它作爲參數傳遞。在這種情況下,我想傳遞一個稱爲可變DOC_ID成稱爲表名在Django Python中使用kwargs將參數推入表2
在本例中,我已設置DOC_ID爲1 Tables2對象,並把它傳遞到
查看
def editorView(request):
doc_id = 1
table = tableName(UserProfile.objects.filter(), doc_id=doc_id)
表
class tableName(tables.Table):
tbl_doc_id = None ## Creating a temporary variable
def __init__(self, *args, **kwargs):
temp = kwargs.pop("doc_id") ## Grab doc_ID from kwargs
super(tableName, self).__init__(*args, **kwargs)
self.tbl_doc_id = temp ## Assign to self.tbl_doc_id for use later
### Do something with tbl_doc_id
modelFilter = model.objects.filter(pk = tbl_doc_id)
當運行調試器,我可以看到tbl_doc_id仍被指定爲無,而不是1
什麼是參數傳遞到Tables2實例的正確方法?可能嗎?
編輯:爲上下文添加更多信息。
在現實世界中,我有一種觀點。該視圖從名爲doc_id的URL中獲取參數。該doc_id用於從名爲「MaterialCollection」的模型中獲取對象,並將其作爲「mc」返回。然後
'管委會' 被傳遞到表
查看
def editorView(request, doc_id):
try:
mc = MaterialCollection.objects.get(pk = doc_id)
except Material.DoesNotExist:
raise Http404("Document does not exist")
config = RequestConfig(request)
unnassigned_User_Table = unassignedUserTable(UserProfile.objects.filter(), mc=mc)
... Other code + Render ...
從我的表,我創建一個自定義LinkColumn。 linkColumn用於根據模型'UserProfile'和mc中的一些Attributes構建一個URL。
表
class unassignedUserTable(tables.Table):
mc = None
def __init__(self, *args, **kwargs):
temp_mc = kwargs.pop("mc")
super(unassignedUserTable, self).__init__(*args, **kwargs)
self.mc = temp_mc
current_Assignment = "NONE"
new_Assignment = "AS"
assign_Reviewer = tables.LinkColumn('change_Review_AssignmentURL' , args=[ A('user'), current_Assignment, new_Assignment, mc, A('id')], empty_values=(), attrs={'class': 'btn btn-success'})
class Meta:
model = UserProfile
... Setup excludes/sequence/attributes...
在這個特定的實例。 MC有一個FK UserProfile(1:M)的關係。
糟糕! super(unassignedUsers,self).__ init __(* args,** kwargs)代表我的疏忽。我試圖混淆代碼,這是一個疏忽。也許我會向代碼添加額外的信息來提供上下文。可能有更簡單的方法來實現我想要做的事情。 –
你爲什麼要*代碼混淆?如果您試圖對python代碼進行混淆,那麼您違反了*所有* python原則 - 每當您這樣做時,天使都會失去它的翅膀 - 如果您想編寫混淆代碼,請使用其他語言! – Serafeim
對不起,我的混淆,我的意思是概括了代碼。我試圖概括這些名稱,而不是從我的實際代碼庫中提供一塊板。我錯過了這些「未分配的用戶」。 我的歉意。 –