【发布时间】:2021-01-13 18:36:14
【问题描述】:
我有一个 Django 模型,其中包含 2 个字段作为纬度和经度。我已将它们都声明为 CharField。我的模型需要接受超过 1 个坐标(纬度和经度),因此在以渲染形式(在 UI 中)输入时,我输入这些坐标,用逗号分隔。正是这个 char 输入,然后我将其拆分为函数并进行计算..
这是我的models.py
class Location(models.Model):
country = models.ForeignKey(Countries, on_delete=models.CASCADE)
latitude = models.CharField(max_length=1000,help_text="Add the latitudes followed by comma")
longitude = models.CharField(max_length=1000,help_text="Add the longitudes followed by comma")
这是我的 view.py 函数
def dashboard(request):
form = LocationForm
if request.method == 'POST':
form = LocationForm(request.POST)
if form.is_valid():
form.save()
latitude = list(map(float, form.cleaned_data.get('latitude').split(',')))
longitude = list(map(float, form.cleaned_data.get('longitude').split(',')))
.........
.........
return render(request, dashboard/dashboard.html, { 'form':form })
现在,我希望我的模型也接受坐标作为 CSV 文件。我想在 UI 中添加一个选项来添加一个 CSV 文件(具有多个纬度和经度),然后填充这两个字符字段(作为逗号分隔的值)。
请注意,我的 CSV 文件不会包含国家/地区名称。我将只使用表单 UI 进入该国家/地区。
因此,简而言之,我需要接受一些表单字段作为 CSV 文件,而不是全部。
我找到了上传 CSV 文件的解决方案,但它们都填充了所有模型字段,而不仅仅是选择性的。因此,CSV 文件必须包含所有表单字段值(在我的例子中也是国家)
我能做什么?也许,在模型中有一个 FileField() 并用它做点什么。或者我可以只使用 javascript 来填充 UI 中的坐标。或者其他的东西。
不知道该怎么办?
【问题讨论】:
标签: javascript python-3.x django django-models django-forms