Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python django extensions中的UUIDField在基于类的视图中不可用_Python_Django_Django Views_Django Extensions - Fatal编程技术网

Python django extensions中的UUIDField在基于类的视图中不可用

Python django extensions中的UUIDField在基于类的视图中不可用,python,django,django-views,django-extensions,Python,Django,Django Views,Django Extensions,我有一个web应用程序,其中使用了几个UUIDField。在管理UI中,在基于函数的视图和其他Python代码中,这些字段按预期工作。但是,当尝试在CBV的“字段”中列出它们时,我得到了错误: FieldError(message) django.core.exceptions.FieldError: Unknown field(s) (ct_id) 此处的主题字段为ct\u id。但另一个也一样 从models.py: ct_id = UUIDField(_("UUID"), versio

我有一个web应用程序,其中使用了几个UUIDField。在管理UI中,在基于函数的视图和其他Python代码中,这些字段按预期工作。但是,当尝试在CBV的“字段”中列出它们时,我得到了错误:

FieldError(message) django.core.exceptions.FieldError: Unknown field(s) (ct_id) 
此处的主题字段为ct\u 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中,这会产生错误:

fields =['published','prj_name','data_name','ct_id',]
你有什么想法可以让它工作吗?我只想渲染它们以供显示,而不是编辑


谢谢

这可能是个愚蠢的问题,但是你试过把
ct\u id
放在引号里吗

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

我不确定这是解决问题的唯一或最好的方法。但是,因为我需要在视图中使用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

UUIDField的定义方式是否存在缺陷,导致其在CBV中不可用?这至少是一个解决办法

可能是您忘记将
ct\u id
作为
'ct\u id'
放入字符串中,在实际代码中它正确地包含引号。事实上,我只是反复检查以确定,然后解决了这个问题。:-)