【发布时间】:2016-01-07 13:33:02
【问题描述】:
我正在制作一个美食网站。
当用户上传关于餐厅的评论时,
我想根据 Google Map API 保存用户输入的餐厅名称和位置。
所有信息都保存在 Restaurant 模型中
class Restaurant(models.Model):
restaurant_id = models.CharField(max_length=20, primary_key=True)
name = models.CharField(max_length=200)
longitude = models.CharField(max_length=200)
latitude = models.CharField(max_length=200)
def __str__(self):
return self.name.encode('utf-8', errors='replace')
我有两个视图函数来保存数据。
我使用Ajax来获取位置的数据
def position(request):
if request.method == 'GET':
local_lat = request.GET['latitude']
local_lng = request.GET['longitude']
Restaurant.objects.create(
latitude = local_lat,
longitude =local_lng,
)
return HttpResponse(lat)
并使用创建视图函数来获取用户发布的餐厅名称
def create(request):
if request.method == 'POST':
local_form = AddForm(request.POST,request.FILES)
if local_form.is_valid():
local_restaurant = local_form.data.get("restaurant")
local_restaurant_id = str(len(Restaurant.objects.all()) + 1)
Restaurant.objects.create(
restaurant_id = local_restaurant_id,
name = local_restaurant,
)
return render(request, 'index.html')
else:
local_form = AddForm(request.POST)
return render(request, 'create_meal.html',)
else:
return render(request, 'create_meal.html',)
但是,我无法真正将数据保存到数据库中,因为我使用两个视图函数来创建相同的模型。
我该如何解决?
=================已添加=================
在我的 html 文件中,我有表格让用户输入他们的餐厅
<form id="add-meal-form" class="form" action="#" method="POST" role="form" >
{% csrf_token %}
{{ form.as_p }}
<div class="form-group">
<input type="text" class="form-control " id="restaurant" name="restaurant" >
</div>
<div class="form-group">
<input type="text" class="form-control " id="meal" name="meal" >
</div>
<div class="text-center">
<button type="submit" id="send" class="btn btn-primary" href="/">Submit</button>
</div>
</form>
如果用户输入餐厅名称,会同时得到它的经纬度。
如果用户提交按钮,餐厅名称将保存在餐厅模型中。
我不明白如何同时保存这两个数据。
【问题讨论】:
标签: python django django-models django-views