저는 Python에서 새로 도입되었으므로 자세한 설명을 제공해주십시오. 그래서, 나는에 아약스를 통해 양식을 게시 할 코드가/템플릿/검색에 표시 복귀 후 서버에서 데이터를 얻기 조회 :클래스의 메서드가 클래스 외부에서 반환됩니다.
views.py
class SomeClass(View):
def post(self, request, *args, **kwargs):
if request.method =='POST':
data = request.body
qd = QueryDict(data)
place = qd.values()[2]
indate = qd.values()[3]
outdate = qd.values()[0]
url = ('http://)
req = requests.get(url).text
json_data = json.loads(req)
self.results = []
for result in json_data.get('hotelList'):
self.results.append(result)
return HttpResponse(self.results)
def function(request):
var = SomeClass()
v = var.results
return render(request,'search.html', {'v':v})
search.html에
<body>
<form id="form" action="" method="post">{% csrf_token %}>
<div class="form-group">
<label for="place">Place</label>
<input type="text" class="form-control" id="place" placeholder="Input city name">
</div>
<div class="form-group">
<label for="check-in">check-in date</label>
<input type="text" class="form-control" id="check-in" placeholder="check-in date">
</div>
<div class="form-group">
<label for="check-out">check-out date</label>
<input type="text" class="form-control" id="check-out" placeholder="check-out date">
</div>
<button type="submit" class="btn btn-default" id="submit- btn">Submit</button>{% csrf_token %}
</form>
<div id="result">
{% for result in v %}
{{ result }}
{% endfor %}
</div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.2.3/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
// posting form using ajaxForm
$('#submit-btn').click(function(e) {
var options = {
type: "POST",
target: '#result', // div to update
url: '/query/',
data: {
place: $("#place").val(),
check_in: $("#check-in").val(),
check_out: $("#check-out").val()
},
success: function() {
alert('');
}
</script>
</body>
urls.py
urlpatterns += patterns('task6_API.views',
url(r'^search/$', 'search_page', name='search'),
url(r'^query/$', SomeClass.as_view(), name='search_result'),
)
난 그냥 self.result
를 반환하는 경우 내가 얻을 :
AttributeError: `'list' object has no attribute 'get'`
은 그래서
HttpResponse
를 사용합니다.
에 results
을 수신해야합니다. 그것을 어떻게 얻을 수 있습니까?
처음? 함수 기반보기에서 클래스 기반보기에 액세스하려고합니까? 나는 이것이 당신이 한 일을 실행하는 올바른 방법이 아니라는 것을 확신합니다. – Selcuk
지금은 함수 기반 뷰 또는 다른 클래스에서 액세스하는지 여부에 관계없이 나를 위해. 가장 중요한 것은 수업에서 반품을 사용하는 방법입니다. 아마도 나는 개념적으로 잘못되었으므로 나를 바로 잡으십시오. – Andriy
무엇을 하려는지 설명하면 더 많이 추측 할 수 있지만 현재 방법이 잘못 지시됩니다. 귀하의 질문에 대답; 'result'는'post' 메소드에 의해 리턴되고 이론적으로는'v = var.post (request)'를 사용하여 액세스 할 수 있습니다. 그러나'post' 메소드는'result'를 계산하기 위해 추가 인수 ('* args' 또는'** kwargs')를 필요로합니다. – Selcuk