我现在正在处理一个 GeoDjango 项目,我目前正在接收无法识别为 WKT EWKT 的字符串或 unicode 输入,并且在提交表单时收到 HEXEWKB 错误。
该表单填充了一组图像,这些图像是通过对名为 ImagesInstagram 的图像表执行 distance__lte 生成的。该表单显示设置距离内的所有图像以及每个图像旁边的单选按钮。当我选择图像的单选按钮时,我想获取该图像的 id 并将 id 发布到名为 ImagesTravel 的新/单独表中。在表单中生成图像的查询工作正常,当我选择一个单选按钮并单击提交表单时,该变量也填充了正确的图像 ID。但是,我仍然收到错误,就好像我错误地传递了 geo_point 一样。下面是所有的代码。
意见
查看以填充表单
def curate_detailed_main(request, geo_point):
placestring = str(geo_point)
pnt = GEOSGeometry(placestring)
places = ImagesInstagram.objects.filter(geo_point__distance_lte=(pnt, D(km=5)))
args = {}
args.update(csrf(request))
args['places'] = places
return render_to_response('curate_detailed_main.html', args)
查看表单提交帖子到
def curate_detailed_main_auth(request):
if request.method == 'POST':
p = get_object_or_404(ImagesInstagram, pk=instagram_id_num)
selected_image = p.choice_set.get(pk=request.POST['choice'])
ImagesTravel.Image_id = selected_image.Image_id
ImagesTravel.save()
return HttpResponseRedirect('/')
else:
return render_to_response('curate_detailed_main.html')
模板
<form action="/curate/get/main/auth/" method="post" id="UpdateMain" name="myForm">
{% csrf_token %}
<input type="submit" value="Update" />
{% for place in places %}
<table border="0">
<tr>
<th><img name="low_res_url" src="{{ place.low_res_url}}" width="200"/></th>
<th><input type="radio" name="choice" id="choice{{ forloop.counter }}" value="{{ place.geo_point }}"></th>
</tr>
</table>
{% endfor %}
</form>
我知道在我的代码中可能需要更正几件事,例如验证表单中的数据等...但是代码块 curate_detailed_main_auth 甚至没有运行,因为错误发生在它甚至尝试执行之前代码块。我对 django 很陌生,我一直在尽可能多地阅读,这篇文章是最后的手段,因为我自己无法弄清楚这一点。谢谢,我也可以发布您可能需要的任何其他相关信息,请告诉我。
谢谢。