2009-09-04 4 views
2

J'essaye de faire une vue personnalisée dans l'admin de Django. Je lis ce site, Simple Django Admin Preview, mais j'ai un problème:Admin Django, erreur de vue personnalisée: littéral invalide pour int() avec base 10

ValueError: invalid literal for int() with base 10: '13/preview' 

Voici mon url.py:

url(r'^admin/diligencias/diligencia/(?P<object_id>\d+)/preview/$','preview'), 

Voici mon view.py:

@staff_member_required 
def preview(request, object_id): 
    return object_detail(request, object_id=object_id,queryset=Diligencia.objects.all(), template_object_name = 'diligencia',) 

Que signifie cette erreur?

Répondre

4

La demande n'est pas détectée par cette URLconf, mais par la vue d'administration par défaut, qui attend que tout ce qui suit l'application/le modèle soit la valeur entière de la clé primaire.

Vous devrez peut-être déplacer votre URL plus haut dans la liste des URL, de sorte qu'elle précède celle qui contient les URL d'administration.

+0

Merci Daniel, maintenant j'ai une nouvelle erreur: retraçage (le plus récent appel dernier): fichier «/home/iosira05/webapps/django/lib/python2. 5/django/core/handlers/base.py ", ligne 92, dans get_response response = callback (demande, * callback_args, ** callback_kwargs) TypeError: l'objet 'str' n'est pas appelable – Asinox

1

Ce que Gabriel dit est incorrect. Je suppose que le problème est que votre vue est après les autres vues d'administration dans l'URLConf, donc cette URL est attrapée par un catchall que le Django amdin utilise le "13/aperçu" pourrait être un PK valide, par conséquent vous devez vous déplacer cette URL au-dessus des autres.

-2

def importnum(): 
 
    n1 = int(raw_input ("enter 1st number?")) 
 
    n2 = int(raw_input ("enter 1st number?")) 
 
    return n1+n2 
 

 
def main(): 
 
    n3=importnum() 
 
    print n3*1/2
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>