如何在django管理面板中将PointField显示为lat和long

如何在django管理面板中将PointField显示为lat和long,django,geodjango,Django,Geodjango,尽管我读了很多类似的文章,关于如何在AdminDjango面板中以纬度和经度显示PointField,但我还是不知道该怎么做 管理面板一直显示地图,但不显示所需的两个字段 下面是我使用LatLongWidget小部件进行的失败尝试 我的模型: class Station(models.Model): id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) owner = models.

尽管我读了很多类似的文章,关于如何在AdminDjango面板中以纬度和经度显示PointField,但我还是不知道该怎么做

管理面板一直显示地图,但不显示所需的两个字段

下面是我使用
LatLongWidget
小部件进行的失败尝试

我的模型:

class Station(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    owner = models.ForeignKey(User, related_name="stations", on_delete=models.CASCADE)
    name =models.CharField(max_length=100)
    location = models.PointField()
我的管理员

from django.contrib import admin
from django.contrib.gis.admin import OSMGeoAdmin
from .models import Station
from django.contrib.gis.db import models as geomodels
from .widgets import LatLongWidget

@admin.register(Station)
class StationAdmin(OSMGeoAdmin):
    list_display = ('name', 'owner','location')
    search_fields = ('name','owner__email')

    formfield_overrides = {
        geomodels.PointField: {'widget': LatLongWidget},
    }
我的widget.py

from django import forms
from django.contrib.gis.db import models as geomodels


class LatLongWidget(forms.MultiWidget):
    """
    A Widget that splits Point input into latitude/longitude text inputs.
    """

    def __init__(self, attrs=None, date_format=None, time_format=None):
        widgets = (forms.TextInput(attrs=attrs),
                   forms.TextInput(attrs=attrs))
        super(LatLongWidget, self).__init__(widgets, attrs)

    def decompress(self, value):
        if value:
            return tuple(value.coords)
        return (None, None)

    def value_from_datadict(self, data, files, name):
        mylat = data[name + '_0']
        mylong = data[name + '_1']

        try:
            point = Point(float(mylat), float(mylong))
        except ValueError:
            return ''

        return point

我怎样才能摆脱map而使用lat和long呢?解决方案比我预期的要简单

有两个改变需要做

  • 将admin.py中的
    类StationAdmin(OSMGeoAdmin)
    更改为
    类StationAdmin(admin.ModelAdmin)

  • 从widgets.py中的django.contrib.gis.geos导入点导入