잠시 동안 디버깅 한 후에 오류가 무엇인지 발견했지만 해결 방법을 모르겠습니다.NoReverseMatch in django
- 가 나는 urlConf이 인수로 카하 개체의 ID를 수신 한 다음 일반
object_detail
을 부르는 이름 'ver_caja
을'오순절있다. - queryset이 정확합니다. 모든 caja 개체를 올바르게 가져옵니다.
{% ver_caja caja.id %}
- 개체
caja
올바르게 템플릿에 의해 수신 : 템플릿에서 - 나는 전화를 가지고있다.
- 저는 MySQL을 사용하고 있습니다.
문제는 caja.id
값 대신에 "1"의 「1L」을 갖는다는 것이다.
이 1L
은 urlconf (ver_caja
)가 영숫자가 아닌 정수를 기다리기 때문에 오류가 발생합니다 (<int>L
).
내가 장고 문서에있어 모든 정보는 사이트 (튜토리얼에서 예를 들어)이 있으며, 도움이되지 않습니다
그래서...
>>> p = Poll(question="What's up?", pub_date=datetime.datetime.now())
# Save the object into the database. You have to call save() explicitly.
>>> p.save()
# Now it has an ID. Note that this might say "1L" instead of "1", depending
# on which database you're using. That's no biggie; it just means your
# database backend prefers to return integers as Python long integer
# objects.
>>> p.id
...
, 내가 고칠 수있는 방법이 caja.id=1
를 대신받을 수 caja.id=1L
? 사전에
감사합니다.
페드로
편집 :는 여기에서 모든 파일이 있습니다.
템플릿 오류 :
Caught an exception while rendering: Reverse for 'ver_caja_chica' with arguments '(1L,)' and keyword arguments '{}' not found.
카하/models.py
class Caja(models.Model):
slug = models.SlugField(blank=True)
nombre = models.CharField(max_length=20)
saldo = models.DecimalField(max_digits=10, decimal_places=2)
detalle = models.TextField(blank=True, null=True)
# apertura
fechahora_apert = models.DateTimeField(default=datetime.datetime.now, auto_now_add=True)
usuario_apert = models.ForeignKey(Usuario, related_name=u'caja_abierta_por', help_text=u'Usuario que realizó la apertura de la caja.')
# cierre
fechahora_cie = models.DateTimeField(blank=True, null=True)
usuario_cie = models.ForeignKey(Usuario, null=True, blank=True, related_name=u'caja_cerrada_por', help_text=u'Usuario que realizó el cierre de la caja.')
def __unicode__(self):
return u'%s, $%s' % (self.nombre, self.saldo)
class Meta:
ordering = ['fechahora_apert']
class CajaChica(Caja):
dia_caja = models.DateField(default=datetime.date.today, help_text=u'Día al que corresponde esta caja.')
cerrada = models.BooleanField(default=False, help_text=u'Si la caja está cerrada no se puede editar.')
카하/urls.py
cajas_chicas = {
'queryset': CajaChica.objects.all(),
}
urlpatterns = patterns('',
url(r'^$', 'django.views.generic.list_detail.object_list', dict(cajas_chicas, paginate_by=30), name="lista_cajas_chicas"),
url(r'^(?P<object_id>\d+)/$', 'django.views.generic.list_detail.object_detail', dict(cajas_chicas,), name="ver_caja_chica"),
)
cajachica_list.html
...
<table>
{% for obj in object_list %}
<tr class="{% cycle 'row1' 'row2' %}">
<td>{{ obj.nombre|capfirst }}</td>
<td>{{ obj.fechahora_apert|timesince }}</td>
<td>{{ obj.usuario_apert }}</td>
<td>{{ obj.saldo }}</td>
<td><a href="{% url ver_caja_chica obj.pk %}">Ver/Editar</a></td>
</tr>
{% endfor %}
</table>
...
아마 최종 URL이 장고에 의해 잘못 구성되어있다
...
4. ^caja/$ ^$
5. ^caja/$ ^(?P<object_id>\d+)/$
...
:(목적에) 잘못된 urlconf와
EDIT-2 ,이는이 응용 프로그램의 URL입니다.
이 URL은 caja/urls.py 안에 있으며 프로젝트의 루트 디렉토리에있는 urls.py에 포함되어 있습니다.
실마리가 있습니까?
이 질문에 urls.py''에서 실제 행을 추가 : 프로젝트의
urls.py
보장에당신이 뭔가를 가지고있다. '1L'은 파이썬의 긴 정수를 출력하는 방법 일뿐입니다. 문제가 될 것이라고는 생각하지 않습니다. >>> A = 1L >>> 1L >>> STR은 (a) '1' >>> –
I 디버그 모든 코드를 말했다. : P 오류 텍스트에서 오류가 매개 변수 ('1L')에 있음이 확실합니다. 그게 문제가 아니라면, 나는 모르겠다. ... – pmourelle
쿼리 세트에 대해 얻은 오브젝트를 살펴 보자. 모두 긴 int인가? 이걸 DB에 어떻게 저장하나요? – googletorp