2016-03-08 95 views
0

我正在使用Django 1.9。我想显示一个包含保存在数据库中的特定车辆属性的视图。但是,当我尝试访问视图时,我收到属性错误而不是车辆特征列表。我应该修正哪些数据,以便正确显示每辆车的视图?每辆车都有一个身份证,而我的数据库中只有一辆车(所以我将该车的身份证放入我的网址中)。在此先感谢使用Django显示视图中的对象的属性

views.py

def getAuto(request, idAuto): 
    auto = Auto.objects.get(idAuto=idAuto) 
    ctx = {"auto": auto} 
    return render('vehiculo_especifico.html', ctx) 

urls.py

url(r'^verAuto/(?P<idAuto>\d+)/$', views.verAuto), 

models.py

class Auto(models.Model): 
    idAuto = models.AutoField(primary_key=True) 
    Marca = models.CharField(max_length=45) 
    Modelo = models.CharField(max_length=45) 
    VarianteModelo = models.CharField(max_length=45) 
    Ano = models.IntegerField(null=False, default=2016) 
    etc.. 

回溯(IO错误):

回溯:

File "C:\Users\User\Envs\vehilometro\lib\site-packages\django\core\handlers\base.py" in get_response 
    149.      response = self.process_exception_by_middleware(e, request) 

File "C:\Users\User\Envs\vehilometro\lib\site-packages\django\core\handlers\base.py" in get_response 
    147.      response = wrapped_callback(request, *callback_args, **callback_kwargs) 

File "C:\Users\User\Envs\vehilometro\vehilometro\vehiapp\views.py" in verAuto 
    88.  return render('vehiculo_especifico.html', ctx) 

File "C:\Users\User\Envs\vehilometro\lib\site-packages\django\shortcuts.py" in render 
    67.    template_name, context, request=request, using=using) 

File "C:\Users\User\Envs\vehilometro\lib\site-packages\django\template\loader.py" in render_to_string 
    96.    template = get_template(template_name, using=using) 

File "C:\Users\User\Envs\vehilometro\lib\site-packages\django\template\loader.py" in get_template 
    32.     return engine.get_template(template_name, dirs) 

File "C:\Users\User\Envs\vehilometro\lib\site-packages\django\template\backends\django.py" in get_template 
    40.    return Template(self.engine.get_template(template_name, dirs), self) 

File "C:\Users\User\Envs\vehilometro\lib\site-packages\django\template\engine.py" in get_template 
    190.   template, origin = self.find_template(template_name, dirs) 

File "C:\Users\User\Envs\vehilometro\lib\site-packages\django\template\engine.py" in find_template 
    157.       name, template_dirs=dirs, skip=skip, 

File "C:\Users\User\Envs\vehilometro\lib\site-packages\django\template\loaders\base.py" in get_template 
    40.     contents = self.get_contents(origin) 

File "C:\Users\User\Envs\vehilometro\lib\site-packages\django\template\loaders\filesystem.py" in get_contents 
    24.    with io.open(origin.name, encoding=self.engine.file_charset) as fp: 

Exception Type: IOError at /verAuto/1/ 
Exception Value: [Errno 22] Invalid argument: u"C:\\vehiapp\\Templates\\{'auto': <Auto: Nissan 370z Touring AT>}" 
+0

您能否包含完整的追溯?它应该指向有问题的声明 – DaveBensonPhillips

+0

您的视图名为'getAuto',但在urls中将其称为'verAuto',这会导致报告的错误,因为'views'模块没有属性'verAuto' – schwobaseggl

+0

已更正一些事情,但现在我得到一个IOError。我现在会发布回溯 – KPavezC

回答

1

urls.py

url(r'^getAuto/(?P<idAuto>\d+)/$', views.verAuto), 

views.py

def verAuto(request, idAuto): 
    auto = Auto.objects.get(idAuto=idAuto) 
    ctx = { 
    "auto":auto 
    } 
    return render(request,'vehiculo_especifico.html', ctx) 

vehiculo_especifico.html

... 
Marca: {{auto.Marca}} 
Modelo: {{auto.Modelo}} 
... 

阅读关于PEP(Python代码样式指南) https://www.python.org/dev/peps/pep-0008/

+0

我做到了,现在它显示IOError,我现在会发布回溯,谢谢 – KPavezC

+0

render需要请求对象。 'render(request,'template.html',ctx)' – erajuan

+0

非常感谢!我知道我忘了一些东西 – KPavezC