URL 패턴을 통해 객체 값을 전달하고 뷰 기능에서 사용할 수 있다는 것을 알고 있습니다. 예를 들어 :URL을 통해 객체 데이터 전달
(r'^edit/(?P<id>\w+)/', edit_entry),
이 같이 활용 될 수있다 :
def edit_entry(request, id):
if request.method == 'POST':
a=Entry.objects.get(pk=id)
form = EntryForm(request.POST, instance=a)
if form.is_valid():
form.save()
return HttpResponseRedirect('/contact/display/%s/' % id)
else:
a=Entry.objects.get(pk=id)
form = EntryForm(instance=a)
return render_to_response('edit_contact.html', {'form': form})
하지만 어떻게 내가 URL에 모델 필드에서 ("ID"이외의) 값을 전달합니까? 예를 들어, 하위 모델 "OrderForm"및 "SpecReport"가 공유하는 "job_number"필드가있는 추상 기본 모델이 있습니다. 주문 양식에서 "job_number"를 클릭하고 동일한 작업 번호에 대한 Spec Report를 호출하고 싶습니다. 나는 URL로 정보를 전달하기 위해
href="/../specifications/{{ record.job_number }}
를 만들 수 있습니다,하지만 난 이미 정규식 구문이 잘못 알고 :
(r'^specifications/(?P<**job_number**>\w+)/', display_specs),
을도 내가보기에 job_number 같은 방법으로 캡처 할 수 있습니다 I could could id :
def display_specs(request, job_number):
records = SpecReport.objects.filter(pk=job_number)
tpl = 'display.html'
return render_to_response(tpl, {'records': records })
여기에 쉬운 접근 방법이 있습니까 아니면 그것이 생각보다 복잡합니까?
(r'^specdisplay/?agencyID=12/', display_specs),
과 :
수정 된 코드는 다음과 같습니다
def display_specs(request, agencyID):
agencyID= request.GET.get('agencyID')
records = ProductionSpecs.objects.filter(pk=id)
tpl = 'display_specs.html'
return render_to_response(tpl, {'records': records })
필터링하는 방법을 잘. pk는 더 이상 적용되지 않습니다.
나는 당신의 유일하게 남아있는 문제는 URL 정규식 생각 : 모든 물음표 (포함)를 이동 한 후이 들어
는이처럼 urlconf에 named urls을 사용하여 시작해야 작동합니다. 이것들은 GET 매개 변수라고하며 일치하는 항목의 일부가 아닙니다. –