Je ne sais pas exactement comment dire cela, mais voilà. J'ai plusieurs points de vue que mon urls.py ne semble pas du tout arriver, et je ne sais pas pourquoi. Je suis nouveau à django et avoue être un peu perplexe quant à la façon dont cela fonctionne.URLs et vues dans DJANGO
Dans mon modèle, j'ai:
<ul>
<li><a href="/project/{{project.slug}}/tickets/create">Create Ticket</a></li>
<li><a href="/project/{{ project.slug }}/tickets/edit">Edit Ticket</a></li>
<li><a href="/project/{{ project.slug }}/tickets/delete">Delete Ticket</a></li>
</ul>
Dans mon urls.py:
(r'^ticket/(?P<ticket_id>\d+)$', views.editTicket),
(r'^(?P<project_slug>[^\.^/]+)/tickets/create$', views.createTicket),
(r'^(?P<project_slug>[^\.^/]+)/tickets/(?P<ticket_id>\d+)$', views.deleteTicket),
Dans mon views.py:
def createTicket(request, project_slug):
project = Project.objects.get(slug=project_slug)
form = None
if request.method == 'POST':
t = Ticket(created_by=request.user, assigned_to=request.user)
form = TicketCreateForm(request.POST, instance=t)
if form.is_valid():
comment = Comment(user=request.user, body=request.POST.get("description", ""), subject="")
comment.save()
t.description = comment
form.save()
return HttpResponseRedirect("/project/ticket/%d" % t.pk)
else:
form = TicketCreateForm(instance=Ticket(project=project, assigned_to=request.user))
payload = { 'project':project, 'form':form }
return render(request, 'project/ticket_add.html', payload)
def editTicket(request, ticket_id):
ticket = Ticket.objects.get(pk=ticket_id)
if request.method == 'POST':
form = TicketCreateForm(request.POST, instance=ticket)
if form.is_valid():
form.setComment(Comment(parent=ticket.description, user=request.user, body=request.POST.get("comment", " ")))
form.save()
form = TicketCreateForm(instance=ticket)
payload = { 'project':ticket.project, 'ticket':ticket, 'ticket_form':form }
return render(request, 'project/ticket.html', payload)
def deleteTicket(request, ticket_id):
ticket = Ticket.objects.get(pk=ticket_id)
ticket.delete()
redirect_to = 'project/tickets.html'
return HttpResponseRedirect(redirect_to)
def editTicket(request, ticket_id):
ticket = Ticket.objects.get(pk=ticket_id)
if request.method == 'POST':
form = TicketCreateForm(request.POST, instance=ticket)
if form.is_valid():
form.setComment(Comment(parent=ticket.description, user=request.user, body=request.POST.get("comment", " ")))
form.save()
form = TicketCreateForm(instance=ticket)
payload = { 'project':ticket.project, 'ticket':ticket, 'ticket_form':form }
return render(request, 'project/ticket.html', payload)
Qu'est-ce que je fais mal ici? Quelqu'un peut-il aider?
"J'ai plusieurs vues que mon urls.py ne semble pas atteindre du tout". Qu'est-ce que vous voulez dire? Quelles actions prenez-vous et quelles erreurs/comportements inattendus obtenez-vous? –
Regarde assez près de moi, je passerais en revue les tutoriels (https://docs.djangoproject.com/en/dev/intro/tutorial03/) sur le site Web de Django. Si vous avez envoyé des messages d'erreur spécifiques, cela peut vous aider. Je pense que vous êtes assez proche cependant. De plus, le canal django irc sur freenode est vraiment très bon. –
Doc, merci. Je ne reçois aucune erreur, malheureusement. Au lieu de cela, j'ai beaucoup de "rien" qui se passe où les choses devraient être. – DesiredDesigns