간단한 등록 양식이 있습니다.Django, ajax는 모델 데이터로 양식을 채 웁니다.
- 대학
- 코스
- 모듈 데이터를 필터링하는 것입니다 난 할 노력하고있어
:이 양식에서 3 개 분야가있다. 따라서 사용자가 대학을 선택하면 코스 필드 (선택)에이 대학에 속한 모든 코스가 표시됩니다. 또한 사용자가 코스를 선택하면 모듈 필드 (선택)에이 코스에 속한 모든 모듈이 표시됩니다. 이미지를 확인하면 그 이미지가 다소 단순합니다.
모든 대학, 강좌 및 모듈을 보여 주었지만 데이터가 정확하지 않아 실용적이지 않습니다 (모든 항목 표시). 쿼리 세트를 필터링하는 방법을 알고 있지만 AJAX를 사용하여이를 수행하는 방법을 모르겠습니다. 많은 자습서를 시도했지만 뭔가를 찾을 수 없어서 코드를 게시하지 않아서 유감입니다.
당신은 ... 권리 튜토리얼, 예를 날 지점 또는 나에게 그 작업을 시작하는 몇 가지 코드를 제공 할 수 있다면 내가 작업을 시작하는 델의 예를 사용
UPDATE . 문제는 내가 AJAX와 JS가 전혀 좋지 않다는 것입니다. 그래서 저는 아약스 양식으로부터 요청을받는 뷰를 만들었습니다 (지금은 모든 과정을 반환하고 필터링은하지 않습니다). 내가 가지고있는 문제는 대학을 선택하면 course
select가 비게됩니다. 그래서 나는 그것이보기에서 데이터를 얻지 못한다고 생각한다. 내가 대학을 선택한 후 2
그래서, 선택 과정의 소스 코드처럼 좀 ..
보기
def ajax_get_courses(request):
courses = Course.objects.all()
if request.is_ajax():
data = serializers.serialize('json', courses)
return HttpResponse(data,'json')
else:
return render_to_response('registration/registration_form_teacher.html', {'courses':courses}, context=RequestContext(request))
JS
$(document).ready(function(){
$("#university").change(function(){
var request = $.ajax({
url: "{% url 'ajax_get_courses' %}",
type: "POST",
data: { university: $("#university").val(),
csrfmiddlewaretoken: '{{ csrf_token }}'
},
dataType: "html"
});
request.done(function(msg) {
$("#course").html(msg);
});
});
});
UPDATE를 할 수있는 경우 이 :
<select id="course" name="course" class="form-control">[{"pk": 1, "model": "studies.course", "fields": {"attendance": "FT", "name": "Computer Science", "degree": "BSc (Hons)", "university": 1, "modules": [], "years": 3}}, {"pk": 2, "model": "studies.course", "fields": {"attendance": "FT", "name": "Computer Science", "degree": "MComp (Hons)", "university": 1, "modules": [], "years": 4}}, {"pk": 3, "model": "studies.course", "fields": {"attendance": "FT", "name": "Civil Engineering", "degree": "BEng (Hons)", "university": 1, "modules": [], "years": 3}}, {"pk": 4, "model": "studies.course", "fields": {"attendance": "FT", "name": "Civil Engineering", "degree": "MEng (Hons)", "university": 1, "modules": [], "years": 4}}, {"pk": 5, "model": "studies.course", "fields": {"attendance": "FT", "name": "Pharmacy", "degree": "MPharm (Hons)", "university": 1, "modules": [], "years": 4}}, {"pk": 6, "model": "studies.course", "fields": {"attendance": "FT", "name": "Aeronautical Engineering", "degree": "MEng (Hons)", "university": 4, "modules": [], "years": 4}}, {"pk": 7, "model": "studies.course", "fields": {"attendance": "FT", "name": "Biochemistry", "degree": "BSc (Hons)", "university": 3, "modules": [], "years": 3}}, {"pk": 8, "model": "studies.course", "fields": {"attendance": "FT", "name": "Chemistry", "degree": "BSc (Hons)", "university": 3, "modules": [], "years": 3}}, {"pk": 9, "model": "studies.course", "fields": {"attendance": "FT", "name": "Business Studies", "degree": "BSc (Hons)", "university": 3, "modules": [], "years": 3}}]</select>
즉, 데이터를 가져 오는 중이지만 일부 html을 추가해야합니까? <li>...</li>
처럼?
나는 많은 시간 동안 노력했지만 불행히도 결과가 없었습니다. 질문을 업데이트하고 코드를 추가했습니다! 어떻게 생각해? – manosim
새 발행물에 대한 답변이 업데이트되었습니다. – Del
작품! 멋지다! 고맙습니다.. – manosim