내가하려고하는 것은 Django의 기능적보기를위한 것입니다. 문서보기에서 템플릿보기 및 목록보기에 대한 예제를 보여 주었으므로 여기서는 도움이됩니다. 모델 기반의 일반보기에서는 거의 찾지 못했습니다. 문서에서 예제가 누락 되었습니까?모델에 대해 일반 클래스 기반 생성보기를 만들려면 어떻게해야합니까?
캘린더의 항목을 나타내는 모델이 있습니다. 엔트리를 소유 한 다른 객체 (사용자가 아닌)에 대한 외래 키가 있습니다. 내가하고 싶은 일은 단순히 엔트리를 작성하여 엔트리의 외래 키가 올바르게 설정되었는지 확인한 다음 사용자를 적절한 달력 페이지로 리턴하는 것입니다.
그러나 클래스 기반 제네릭 뷰가 URL 인수를받는 방법을 알지 못하고 success_url을 설정하는 방법이 명확하지 않으므로 원래 생성 URL에 전달 된 ID를 다시 사용합니다. 다시 한번 귀하의 도움에 감사드립니다.
내가 부탁 해요 무엇 본질적이며, 다음의 클래스 기반의 일반적인보기 상응하는 무엇 :
def create_course_entry(request, class_id):
'''Creates a general calendar entry.'''
if request.method == 'POST':
form = CourseEntryForm(request.POST)
if form.is_valid():
new_entry = form.save(commit=False)
new_entry.course = Class.objects.get(pk=class_id)
new_entry.full_clean()
new_entry.save()
return HttpResponseRedirect('/class/%s/calendar/' % class_id)
else:
form = CourseEntryForm()
return render_to_response('classes/course_entry_create.html',
{ 'class_id': class_id, 'form': form, },
context_instance=RequestContext(request))
'form_valid()'에 수동으로 객체를 저장하는 대신'form.instance'를 사용하여'course'를 설정하기 만하면됩니다. 그래서'super()'를 다시 호출 할 수도 있습니다. – stschindler