use generic views
This commit is contained in:
parent
23f3d2a96f
commit
89e0328a53
|
|
@ -4,7 +4,7 @@ from . import views
|
||||||
|
|
||||||
app_name = 'issues'
|
app_name = 'issues'
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('', views.index, name='index'),
|
path('', views.IndexView.as_view(), name='index'),
|
||||||
path('new', views.new, name='new'),
|
path('new', views.new, name='new'),
|
||||||
path('<int:issue_id>/', views.detail, name='detail'),
|
path('<int:issue_id>/', views.DetailView.as_view(), name='detail'),
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -1,24 +1,30 @@
|
||||||
from django.http import HttpResponseRedirect
|
from django.http import HttpResponseRedirect
|
||||||
from django.shortcuts import get_object_or_404, render
|
from django.shortcuts import render
|
||||||
|
from django.views import generic
|
||||||
|
|
||||||
from .forms import IssueForm
|
from .forms import IssueForm
|
||||||
from .models import Issue
|
from .models import Issue
|
||||||
|
|
||||||
|
|
||||||
def index(request):
|
class IndexView(generic.ListView):
|
||||||
issue_list = Issue.objects.order_by('create_date')
|
template_name = 'issues/index.html'
|
||||||
return render(request, 'issues/index.html', {
|
context_object_name = 'issue_list'
|
||||||
'issue_list': issue_list,
|
|
||||||
})
|
def get_queryset(self):
|
||||||
|
return Issue.objects.order_by('create_date')
|
||||||
|
|
||||||
|
|
||||||
def detail(request, issue_id):
|
class DetailView(generic.DetailView):
|
||||||
issue = get_object_or_404(Issue, pk=issue_id)
|
model = Issue
|
||||||
return render(request, 'issues/detail.html', {
|
template_name = 'issues/detail.html'
|
||||||
'issue': issue,
|
pk_url_kwarg = 'issue_id'
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
|
# class NewIssueForm(generic.FormView):
|
||||||
|
# template_name = 'issues/new.html'
|
||||||
|
# form_class = IssueForm
|
||||||
|
# success_url =
|
||||||
|
|
||||||
def new(request):
|
def new(request):
|
||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
form = IssueForm(request.POST)
|
form = IssueForm(request.POST)
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,6 @@ from . import views
|
||||||
|
|
||||||
app_name = 'projects'
|
app_name = 'projects'
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('', views.index, name='index'),
|
path('', views.IndexView.as_view(), name='index'),
|
||||||
path('<project_key>/', views.view, name='view'),
|
path('<slug:project_key>/', views.ProjectView.as_view(), name='view'),
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -1,20 +1,22 @@
|
||||||
from django.shortcuts import get_object_or_404, render
|
from django.views import generic
|
||||||
|
|
||||||
from .models import Project
|
from .models import Project
|
||||||
from issues.models import Issue
|
|
||||||
|
|
||||||
|
|
||||||
def index(request):
|
class IndexView(generic.ListView):
|
||||||
project_list = Project.objects.order_by('project_key')
|
template_name = 'projects/index.html'
|
||||||
return render(request, 'projects/index.html', {
|
context_object_name = 'project_list'
|
||||||
'project_list': project_list,
|
|
||||||
})
|
def get_queryset(self):
|
||||||
|
return Project.objects.order_by('project_key')
|
||||||
|
|
||||||
|
|
||||||
def view(request, project_key):
|
class ProjectView(generic.DetailView):
|
||||||
project = get_object_or_404(Project, project_key=project_key)
|
model = Project
|
||||||
issue_list = Issue.objects.filter(project=project.id).order_by('create_date')
|
template_name = 'projects/view.html'
|
||||||
return render(request, 'projects/view.html', {
|
slug_field = slug_url_kwarg = 'project_key'
|
||||||
'project': project,
|
|
||||||
'issue_list': issue_list,
|
def get_context_data(self, **kwargs):
|
||||||
})
|
context = super().get_context_data(**kwargs)
|
||||||
|
context['issue_list'] = self.get_object().issue_set.order_by('create_date')
|
||||||
|
return context
|
||||||
|
|
|
||||||
Reference in New Issue