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