包含PolyGoField的GeoDjango保存模型表单

2024-10-04 01:27:34 发布

您现在位置:Python中文网/ 问答频道 /正文


我试图在Django中实现一个简单的ModelForm,但看起来我遗漏了一些东西。我现在拥有的是以下内容:

models.py

class DogParks(models.Model):
    park_name_en = models.CharField(max_length=256)
    description = models.TextField()
    'picture = models.ImageField()'
    geom = PolygonField()

    def __unicode__(self):
        return self.title

forms.py

class DogParkForm(forms.ModelForm):
    geom = PolygonField()

    class Meta:
        model = DogParks
        fields = ('park_name_en', 'description', 'geom')

和在views.py中

def dog_park_insert(request):
    if request.method == 'POST':
        form = DogParkForm(request.POST)
        if form.is_valid():
            form_instance = form.save(commit=False)
            form_instance.as_json()
            form_instance.save()
            return HttpResponse('save!')
        else:
            return HttpResponse(form.errors)
    else:
        form = DogParkForm()
        return render(request, 'adddogpark.html', {'form': form})

问题是,当我尝试保存表单时,会出现以下错误:

TypeError

TypeError: <Polygon object at 0x7fc11e4a4780> is not JSON serializable

我应该使用序列化程序吗?如果是,我应该如何或在哪里序列化?任何想法都会有帮助


Tags: instancenamepyformparkreturnmodelsrequest