django - invalid literal for int() with base 10: '' -> not understanding what this error means in my project -
i'm trying create website django. want index displaying rubriques, , when click on rubrique, articles of rubrique show. here models.py :
class rubrique(models.model): nom = models.charfield(max_length=200) resume = models.charfield(max_length=200)
here urls.py :
urlpatterns = patterns('', url(r'^$', views.index, name='index'), url(r'^(?i)(?p<rubrique_id>)[a-z]+/$', views.rubriques, name='rubriques'), url(r'^(?i)(?p<rubrique_id>)[a-z]+/(?p<article_id>)[a-z]+/$', views.articles, name='articles'), )
here views.py :
def rubriques(request, rubrique_id): rubrique = get_object_or_404(rubrique, pk=rubrique_id) <-- error points line return render(request, 'rubriques/rubrique.html', {'rubrique': rubrique})
aaand here error :
valueerror @ /rubriques/sport/ invalid literal int() base 10: ''
the sport rubrique exists, , template should ok. what's wrong ? have troubles django...
pk
field number default, in model.
you have in url (?p<rubrique_id>)[a-z]+
-> letters, not number.
i don't know how calling urls... that's wrong sure.
if want pass signatures name, set field primary key:
class rubrique(models.model): nom = models.charfield(max_length=200, primary_key=true) resume = models.charfield(max_length=200)
or, option, change lookup code:
rubrique = get_object_or_404(rubrique, nom=rubrique_id)
you should set unique in last case:
class rubrique(models.model): nom = models.charfield(max_length=200, unique=true) resume = models.charfield(max_length=200)
Comments
Post a Comment