2016-12-08 12 views
0

私の貧しい人のために申し訳ありませんが、私は数日ほどで作業していますが、ブロックされています。もはや働かなかった。Django Django空のモデルからのリストTypeError:unhashable type: 'list'

私はその理由と解決方法を理解するために働いていますが、手掛かりはありません。この状況を解決し、私を助けるために行くための道を求めてください。

私だけでしたので、私は何か間違ったことをやっている知っている:

 
    ./manage.py --fork contractos zero 
    clean all migrations data on contractos/migrations (except init.py) 
    ./manage.py --fake 
    ./manage.py makemigrations 
    ./manage.py migrate 
    ./manage.py runserver 

<code> 
my list.py 
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger 
from django.http import Http404 
from django.shortcuts import render 

# Create your views here. 
from contractos.models import Contracto 


def list(request): 
    if not request.user.is_staff and not request.user.is_superuser: 
     raise Http404 

    contractos_list = Contracto.objects.all() #.order_by("empresa") 
    paginator = Paginator(contractos_list, 10) # Show 25 contacts per page 

    page_request_var = 'lista' 
    page = request.GET.get(page_request_var) 

    try: 
     contractos = paginator.page(page) 
    except PageNotAnInteger: 
     #If page is not an integer, deliver first page. 
      contractos = paginator.page(1) 
    except EmptyPage: 
     #If page is out of range (e.g. 9999), deliver last page of results. 
      contractos = paginator.page(paginator.num_pages) 

    context = { 
     "object_list" : contractos, 
     "title": "Lista de Contractos", 
     "page_request_var": page_request_var, 
    } 
    return render(request, "contractos/list.html", context) 


**my list.html** 
{% extends "base.html" %} 

{% block content %} 
    <div class="col-sm-9 col-sm-offset-1"> 
     <h1>Contractos {{ title }}</h1> 
     <div class="row"> 
      {% for obj in object_list %} 
       <div class="col-sm-6 col-md-4"> 
        <div class="thumbnail"> 
         <div class="caption"> 
          <h3> 
           <a href='{{ obj.get_absolute_url }}'>{{ obj.empresa }} </a><br /> 
           {% if obj.logo %} 
            <img src="{{ obj.logo.url }}" class="img-responsive"/> 
           {% endif %} 
           <small>criado {{ obj.timestamp|timesince }}</small><br /> 
           <small>alterado em {{ obj.updated|timesince }}</small><br /> 
          </h3> 
          {{ obj.nfic }} <br/> 
          {{ obj.descricao|linebreaks|truncatechars:60 }} 
          <p>...</p> 
          <p><a href="{{ obj.get_absolute_url }}" class="btn btn-primary" role="button">Detalhes</a> 
           <!--a href="#" class="btn btn-default" role="button">Button</a--></p> 
         </div> 
        </div> 
       </div> 

       {% cycle "" "<div class='col-sm-12'><hr/></div></div><div class='row'>" %} 
      {% endfor %} 
     </div> 

     <div class="pagination"> 
      <span class="step-links"> 
       {% if object_list.has_previous %} 
        <a href="?{{ page_request_var }}=1">Primeira</a> 
        <a href="?{{ page_request_var }}={{ object_list.previous_page_number }}">Anterior</a> 
       {% endif %} 

       <span class="current"> 
        {% if object_list.number %} 
         Pagina {{ object_list.number }} de {{ object_list.paginator.num_pages }}. 
        {% endif %} 
       </span> 

       {% if object_list.has_next %} 
        <a href="?{{ page_request_var }}={{ object_list.next_page_number }}">Seguinte</a> 
        <a href="?{{ page_request_var }}={{ object_list.paginator.num_pages }}">Ultima</a> 
       {% endif %} 
      </span> 
     </div> 
    </div> 
{% endblock content %} 

**my models.py** 

from __future__ import unicode_literals 
import uuid 

from django.db import models 
from django.core.urlresolvers import reverse 

STATUS_CHOICES = [ 
    ('a', 'Activo'), 
    ('s', 'Suspenso'), 
    ('c', 'Cancelado'), 
    ('t', 'Terminado'), 
] 

def upload_location(instance, filename): 
    return "contractos/%s/%s" % (instance.nfic, filename) 

# Create your models here. 
class Contracto(models.Model): 
    slug = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) 
    nfic = models.CharField(max_length=15, default='PT000000000', unique=True) 
    empresa = models.CharField(max_length=128, unique=True) 
    descricao = models.TextField() 
    status = models.CharField(max_length=1, choices=STATUS_CHOICES, default='a') 
    logo = models.ImageField(upload_to=upload_location, 
       null=True, 
       blank=True, 
       width_field="width_field", 
       height_field="height_field" 
       ) 
    height_field = models.IntegerField(default=0) 
    width_field = models.IntegerField(default=0) 
    updated = models.DateTimeField(auto_now=True, auto_now_add=False) 
    timestamp = models.DateTimeField(auto_now=False, auto_now_add=True) 

    def __str__(self): 
     return self.empresa 

    def get_absolute_url(self): 

     return reverse("contractos:details", kwargs={"uuid": self.slug}) 


    class Meta: 
     ordering = ["empresa"] 
     db_table = ["Contractos"] 

and the error I got when try rendering list.py are: 
**Environment:** 

Request Method: GET 
Request URL: http://127.0.0.1:8000/contractos/ 

Django Version: 1.10.4 
Python Version: 3.5.1 
Installed Applications: 
['django.contrib.admin', 
'django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.messages', 
'django.contrib.staticfiles', 
'contractos'] 
Installed Middleware: 
['django.middleware.security.SecurityMiddleware', 
'django.contrib.sessions.middleware.SessionMiddleware', 
'django.middleware.common.CommonMiddleware', 
'django.middleware.csrf.CsrfViewMiddleware', 
'django.contrib.auth.middleware.AuthenticationMiddleware', 
'django.contrib.messages.middleware.MessageMiddleware', 
'django.middleware.clickjacking.XFrameOptionsMiddleware'] 


Traceback: 

File "/home/gwo/Projects/paas/lib/python3.5/site-packages/django/core/paginator.py" in validate_number 
    34.    number = int(number) 

**During handling of the above exception (int() argument must be a string, a bytes-like object or a number, not 'NoneType'), another exception occurred:** 

File "/home/gwo/Projects/paas/src/contractos/views/list.py" in list 
    20.   contractos = paginator.page(page) 

File "/home/gwo/Projects/paas/lib/python3.5/site-packages/django/core/paginator.py" in page 
    50.   number = self.validate_number(number) 

File "/home/gwo/Projects/paas/lib/python3.5/site-packages/django/core/paginator.py" in validate_number 
    36.    raise PageNotAnInteger('That page number is not an integer') 

**During handling of the above exception (That page number is not an integer), another exception occurred:** 

File "/home/gwo/Projects/paas/lib/python3.5/site-packages/django/core/paginator.py" in count 
    72.    return self.object_list.count() 

File "/home/gwo/Projects/paas/lib/python3.5/site-packages/django/db/models/query.py" in count 
    369.   return self.query.get_count(using=self.db) 

File "/home/gwo/Projects/paas/lib/python3.5/site-packages/django/db/models/sql/query.py" in get_count 
    476.   number = obj.get_aggregation(using, ['__count'])['__count'] 

File "/home/gwo/Projects/paas/lib/python3.5/site-packages/django/db/models/sql/query.py" in get_aggregation 
    457.   result = compiler.execute_sql(SINGLE) 

File "/home/gwo/Projects/paas/lib/python3.5/site-packages/django/db/models/sql/compiler.py" in execute_sql 
    824.    sql, params = self.as_sql() 

File "/home/gwo/Projects/paas/lib/python3.5/site-packages/django/db/models/sql/compiler.py" in as_sql 
    369.    extra_select, order_by, group_by = self.pre_sql_setup() 

File "/home/gwo/Projects/paas/lib/python3.5/site-packages/django/db/models/sql/compiler.py" in pre_sql_setup 
    46.   self.setup_query() 

File "/home/gwo/Projects/paas/lib/python3.5/site-packages/django/db/models/sql/compiler.py" in setup_query 
    36.    self.query.get_initial_alias() 

File "/home/gwo/Projects/paas/lib/python3.5/site-packages/django/db/models/sql/query.py" in get_initial_alias 
    879.    alias = self.join(BaseTable(self.get_meta().db_table, None)) 

File "/home/gwo/Projects/paas/lib/python3.5/site-packages/django/db/models/sql/query.py" in join 
    921.   alias, _ = self.table_alias(join.table_name, create=True) 

File "/home/gwo/Projects/paas/lib/python3.5/site-packages/django/db/models/sql/query.py" in table_alias 
    689.   alias_list = self.table_map.get(table_name) 

**During handling of the above exception (unhashable type: 'list'), another exception occurred:** 

File "/home/gwo/Projects/paas/lib/python3.5/site-packages/django/core/handlers/exception.py" in inner 
    39.    response = get_response(request) 

File "/home/gwo/Projects/paas/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response 
    187.     response = self.process_exception_by_middleware(e, request) 

File "/home/gwo/Projects/paas/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response 
    185.     response = wrapped_callback(request, *callback_args, **callback_kwargs) 

File "/home/gwo/Projects/paas/src/contractos/views/list.py" in list 
    23.    contractos = paginator.page(1) 

File "/home/gwo/Projects/paas/lib/python3.5/site-packages/django/core/paginator.py" in page 
    50.   number = self.validate_number(number) 

File "/home/gwo/Projects/paas/lib/python3.5/site-packages/django/core/paginator.py" in validate_number 
    39.   if number > self.num_pages: 

File "/home/gwo/Projects/paas/lib/python3.5/site-packages/django/utils/functional.py" in __get__ 
    35.   res = instance.__dict__[self.name] = self.func(instance) 

File "/home/gwo/Projects/paas/lib/python3.5/site-packages/django/core/paginator.py" in num_pages 
    84.   if self.count == 0 and not self.allow_empty_first_page: 

File "/home/gwo/Projects/paas/lib/python3.5/site-packages/django/utils/functional.py" in __get__ 
    35.   res = instance.__dict__[self.name] = self.func(instance) 

File "/home/gwo/Projects/paas/lib/python3.5/site-packages/django/core/paginator.py" in count 
    77.    return len(self.object_list) 

File "/home/gwo/Projects/paas/lib/python3.5/site-packages/django/db/models/query.py" in __len__ 
    238.   self._fetch_all() 

File "/home/gwo/Projects/paas/lib/python3.5/site-packages/django/db/models/query.py" in _fetch_all 
    1087.    self._result_cache = list(self.iterator()) 

File "/home/gwo/Projects/paas/lib/python3.5/site-packages/django/db/models/query.py" in __iter__ 
    54.   results = compiler.execute_sql() 

File "/home/gwo/Projects/paas/lib/python3.5/site-packages/django/db/models/sql/compiler.py" in execute_sql 
    824.    sql, params = self.as_sql() 

File "/home/gwo/Projects/paas/lib/python3.5/site-packages/django/db/models/sql/compiler.py" in as_sql 
    369.    extra_select, order_by, group_by = self.pre_sql_setup() 

File "/home/gwo/Projects/paas/lib/python3.5/site-packages/django/db/models/sql/compiler.py" in pre_sql_setup 
    46.   self.setup_query() 

File "/home/gwo/Projects/paas/lib/python3.5/site-packages/django/db/models/sql/compiler.py" in setup_query 
    36.    self.query.get_initial_alias() 

File "/home/gwo/Projects/paas/lib/python3.5/site-packages/django/db/models/sql/query.py" in get_initial_alias 
    879.    alias = self.join(BaseTable(self.get_meta().db_table, None)) 

File "/home/gwo/Projects/paas/lib/python3.5/site-packages/django/db/models/sql/query.py" in join 
    921.   alias, _ = self.table_alias(join.table_name, create=True) 

File "/home/gwo/Projects/paas/lib/python3.5/site-packages/django/db/models/sql/query.py" in table_alias 
    689.   alias_list = self.table_map.get(table_name) 

**Exception Type: TypeError at /contractos/ 
Exception Value: unhashable type: 'list'** 
</code> 
</pre> 

だから私は唯一のことを、私たちの顧客にプロジェクトを立証するために試験情報を再度移入を再起動するために、データベースから私のデータをきれいにあなたが想像することができるように私はキャンセルしなければならなかった!

答えて

0

listという機能は、pythonキーワードであるため使用できません。それを他のものに変更すればうまくいくでしょう。また、ファイルの名前を付けないでください。list

関連する問題