File: //usr/lib/python3/dist-packages/django/contrib/gis/sitemaps/__pycache__/views.cpython-310.pyc
o
�a � @ s� d dl mZ d dlmZ d dlmZmZ d dlmZm Z d dl
mZ d dlm
Z
mZ d dlmZ dd e
fd
d�Zde
fdd
�ZdS )� )�apps)�
GeometryField)�AsKML� Transform)�
render_to_kml�
render_to_kmz)�FieldDoesNotExist)�DEFAULT_DB_ALIAS�connections)�Http404NFc
C s" g }zt �||�}W n ty td||f ��w |r7z|j�|�}t|t�s*t�W n ty6 td��w t | } | j
jrL|j�
|�jt|�d�}n7g }| j
jrj|j�
|�jd
i d| t|d�i��}
|d7 }n|j�
|��� }
|
D ]}t||�j|_|�|� qt|r�t}nt}|dd|i�S )z�
This view generates KML for the given app label, model, and field name.
The field name must be that of a geographic field.
z?You must supply a valid app label and module name. Got "%s.%s"zInvalid geometry field.��kmlz%s_4326i� �_4326zgis/kml/placemarks.kml�placesN� )r � get_model�LookupErrorr �_meta� get_field�
isinstancer r r
�features�has_AsKML_function�_default_manager�using�annotater �has_Transform_functionr �all�getattrr
�appendr r )
�request�label�model�
field_name�compressr �
placemarks�klass�field�
connection�qs�mod�renderr r �C/usr/lib/python3/dist-packages/django/contrib/gis/sitemaps/views.pyr
s@ �
���
r
c C s t | |||d|d�S )zD
Return KMZ for the given app label, model, and field name.
T)r# r r )r r r! r"