사람들이 특정 종류의 객체를보고 생성 할 수있는 페이지를 디자인하고 있습니다 (객체는 모델 프로젝트의 인스턴스입니다).하나의 템플릿에 ListView와 CreateView Django
내가 이해하는 한,보기가 끔찍한 지저분한 코드 없이는 할 수 없으므로 한 템플릿을 사용하여 두 개의보기 (ProjectCreateView 및 ProjectListView)를 표시하는 방법을 이해하려고합니다. 지금
이 내가 함께 일하고 것입니다 :views.py :
class ProjectCreateView(CreateView):
model = Project
template_name = "fileupload/project_list.html"
fields = ["name"]
def get_context_data(self, **kwargs):
context = super(ProjectCreateView, self).get_context_data(**kwargs)
return context
class ProjectListView(ListView):
model = Project
def get_context_data(self, **kwargs):
context = super(ProjectListView, self).get_context_data(**kwargs)
return context
class ProjectView(View):
model = Project
def get(self, request, *args, **kwargs):
view = ProjectListView.as_view()
return view(request, *args, **kwargs)
def post(self, request, *args, **kwargs):
view = ProjectCreateView.as_view()
return view(request, *args, **kwargs)
urls.py
urlpatterns = patterns('',
url(r'^projects/$', ProjectView.as_view(), name="projects"),
)
models.py
형태는 버튼 후 "이름"필드를 보여줍니다이 구성<form id="fileupload" method="post" action="." enctype="multipart/form-data">
<div class="row fileupload-buttonbar">
<div class="span7">
<span class="btn btn-primary fileinput-button">
<i class="icon-plus icon-white"></i>
<span>New Project</span>
<input type="submit" name="Create">
</span>
<button type="button" class="btn btn-danger delete">
<i class="icon-trash icon-white"></i>
<span>Delete Project</span>
</button>
<input type="checkbox" class="toggle">
</div>
{{ form.as_p }}
</div>
<table class="table table-striped"><tbody class="files"></tbody></table>
</form>
그러나, 양식
class Project(models.Model):
name = models.CharField(max_length=200)
def get_absolute_url(self):
return reverse("projects")
코드가 눌 렸는지, 그리고 이름을 입력 한 후 나는이 얻을 :
NoReverseMatch at /upload/projects/
Reverse for 'projects' with arguments '()' and keyword arguments '{}' not found.
그 때문에 나는 이것을 수행하는 훨씬 쉬운 방법이 있다고 생각합니다. 나는 어떤 도움을 주셔서 감사합니다.
새 개체를 만들려면 개체 목록, 모델 양식 및 게시를 구현하는 것을 구현할 수 있습니다.보기가 엉망이거나 냄새가 나지 않으면 서 수행 할 수 있습니다. 클래스 기반 뷰는 훌륭 할 때까지 훌륭합니다. – Brandon
어떻게하면됩니까? 솔직히 하나의 템플릿에서 두 가지 작업을 수행 할 수있는 가장 깨끗한 솔루션을 찾고 있습니다. – Plasma
예제 게시. – Brandon