python - 将地理位置坐标插入 Django 元表单字段

标签 python django django-forms

我正在小心地涉足一些使用 HTML5 的基本地理定位。目前,我的第一个 Django 应用程序有一个元表单,其中有用于纬度和经度坐标的空间,并且已经找到了使用 Google Maps API 获取这些坐标的正确代码(非常简单的东西)。

下一步:当用户访问应用程序时,将这些坐标自动插入到元表单中。理想情况下,该应用程序将允许用户发布帖子并存储其坐标以供将来引用和过滤(这部分是一项艰巨的任务;一次一步)。

以这种方式将 JavaScript(我知之甚少)与 Django 结合使用似乎是完成此任务的最有效方式,并且正在寻找是否有一种简单的方法可以做到这一点。我发现一些方法可以使用 jQuery 来完成此任务,但是随着元表单自动设置表单的结构,似乎没有一种简单的方法可以向表单添加“id”(已研究但无法似乎找到了办法)。

任何可以分享的见解或经验将不胜感激。

Model:
    class Story(models.Model):
        objects = StoryManager()
        title = models.CharField(max_length=100)
        topic = models.CharField(max_length=50)
        copy = models.TextField()
        author = models.ForeignKey(User, related_name="stories")
        zip_code = models.CharField(max_length=10)
        latitude = models.FloatField(blank=False, null=False)
        longitude = models.FloatField(blank=False, null=False)
        date = models.DateTimeField(auto_now=True, auto_now_add=True)
        pic = models.ImageField(upload_to='pictures', blank=True)
        caption = models.CharField(max_length=100, blank=True)

        def __unicode__(self):
            return " %s" % (self.title)

Form:

class StoryForm(forms.ModelForm):
    class Meta:
        model = Story
        exclude = ('author',)

最佳答案

Django 通常指向 RESTful应用程序,因此每个现有对象都应该有自己的 URL 进行编辑(即使它是 AJAX)。因此,好的 URL 应该类似于 /obj/123/edit/(用于编辑现有对象)和 /obj/create/(用于创建新对象)。实际上,在完美的 REST 中,您可以使用很少的 URL 来进行所有 CRUD 事件,但这也足够了。因此,您的 URL 中有对象 ID,无需在表单中重复它。

或者,您始终可以使用 value="{{ form.instance.pk }}" 在表单中显示隐藏的输入,并在 View 中手动处理它。

关于python - 将地理位置坐标插入 Django 元表单字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10694364/

相关文章:

python - 字节到人类可读,然后返回。无数据丢失

django - django admin admin.TabularInline有多个ForeignKey

python - 更改 Django 表单中的字段,覆盖 clean()

python - 为什么 Django 不允许使用上下文重定向

python - Mysql 创建外键

python - 如何在X*Y网格中找到最短路径

django - 如何从Django中删除模型?

django - Django表单:如何在关联的模型中简单地包含所有属性

javascript - 对 Django 表单的 AJAX 或 Javascript POST 请求并获取结果

python - 让 PyQt 应用程序控制一切。 react 堆怎么用?