2014-01-20 21 views
0

我有一個Web應用程序,我使用了兩個UUIDFields。在Admin UI中,在基於功能的視圖和其他Python代碼中,這些字段按預期工作。然而,試圖將它們列在一個CBV的「場」的時候,我得到的錯誤:來自django-extensions的UUIDField在基於類的視圖中不可用

FieldError(message) django.core.exceptions.FieldError: Unknown field(s) (ct_id) 

這裏的主題字段是CT_ID。但另一個也是一樣的。

從models.py:

ct_id = UUIDField(_("UUID"), version=4, help_text=_('A unique identifier for this PCT.')) 

如上所述,他們在管理工作列表:

list_display = ('data_name','prj_name','published','ct_id') 
admin.site.register(DvBoolean, DvBooleanAdmin) 

在基於功能的意見,爲DynaTree創建JSON:

pct_json['tooltip'] = 'ct-'+pct.ct_id + " : " +pct.description 

但在CBV中,這會產生錯誤:

關於如何使這項工作的任何想法?我只想渲染它們來顯示,而不是編輯。

感謝

+0

可能你忘了把'ct_id'放在字符串中作爲''ct_id'' –

回答

0

我不確定這是否是解決問題的唯一或最佳方式。但是,因爲我需要在視圖中使用get_context_data()。我現在這樣做是爲了讓CT_ID到視圖模板:

def get_context_data(self,**kwargs): 
    context = super(DvStringUpdateView, self).get_context_data(**kwargs) 
    semlinks = [] 
    obj = get_object_or_404(DvString,pk=context['object'].id) 
    if obj.resource_uri: 
     urilist = obj.resource_uri.splitlines() 
     attrlist = obj.sem_attr.splitlines()   
     for n in range(0,len(urilist)): 
      semlinks.append(attrlist[n] + ' = ' + unquote(urilist[n])) 

    context['semlinks'] = semlinks 
    context['ct_id'] = obj.ct_id 
    return context 

是否有造成它沒有CBVS提供的UUIDField的定義方式的錯誤嗎?這至少是一種解決方法。

0

這可能是一個愚蠢的問題,但你試圖把ct_id引號?

fields = [ 
    'published', 
    'prj_name', 
    'data_name', 
    'ct_id', 
] 
+0

在實際的代碼中它正確地有引號。事實上,我只是雙重檢查確定,然後解決了這個問題。 :-) –

相關問題