Đã giải quyết: định dạng giá trị trường điểm django cho đồ đạc

Vấn đề chính là không thể chỉ định định dạng trường điểm tùy chỉnh cho đồ đạc.

I am trying to load a fixture in Django that has a PointField. The value is stored in the database as:
<code>SRID=4326;POINT(1.23456789 1.23456789)
</code>
The fixture file looks like this:
<code>[{'model': 'myapp.MyModel', 'pk': 1, 'fields': {'point': SRID=4326;POINT(1.23456789 1.23456789)}},]
</code>
However, I get the following error when I try to load it: 
<blockquote>
<p>django.core.serializers.base.DeserializationError: Problem installing fixture '/path/to/fixture/file': Could not load myapp_mymodel(1): (point_field) invalid input syntax for type geometry</p>
</blockquote>


A:

 Django fixtures are in JSON format, so you need to use <code>"SRID=4326;POINT(1.23456789 1.23456789)"</code>.  Also, you need to use <code>"point"</code>, not <code>"Point"</code>.  This should work:  

    [{'model': 'myapp_mymodel', 'pk': 1, 'fields': {'point': "SRID=4326;POINT(1 23)"}}]

tập tin điểm

Tệp điểm là một cấu trúc dữ liệu được sử dụng trong khung web Django để lưu trữ thông tin về một trang web. Tệp điểm chứa thông tin về một trang web, chẳng hạn như URL, tên miền và siêu dữ liệu khác.

Định dạng giá trị trong Django

Định dạng Giá trị trong Django là một cách để xác định một tập hợp các giá trị mà dự án của bạn sẽ tuân theo. Điều này có thể được sử dụng để ghi lại triết lý dự án của bạn hoặc để giúp bạn đưa ra quyết định về cách thức thực hiện dự án của bạn.

Để sử dụng định dạng Giá trị trong Django, trước tiên hãy tạo một mô-đun có tên là giá trị. Trong mô-đun này, bạn sẽ xác định tất cả các giá trị mà dự án của bạn sẽ tuân theo. Bạn có thể đặt bất kỳ tài liệu nào bạn muốn trong mô-đun này, nhưng hiện tại, chỉ cung cấp cho nó những nội dung sau:

từ django.conf nhập cài đặt từ django.core.man Quản lý nhập call_command từ django.utils nhập múi giờ def main (): # Đặt một số cài đặt chung. cài đặt . SETTINGS_MODULE = “values” # Xác định các giá trị mà dự án này tuân theo. myvalues ​​= { 'quy tắc ứng xử' : 'Chúng tôi cam kết cung cấp trải nghiệm không bị quấy rối cho mọi người.' , } call_command ( “echo %s > /etc/hosts” % myvalues ​​[ 'quy tắc ứng xử' ], múi giờ = múi giờ . now ()) if __name__ == “__main__” : main ()

đồ đạc là gì

Lịch thi đấu là một cách lưu trữ dữ liệu trong cơ sở dữ liệu có thể được sử dụng bởi các ứng dụng Django. Chúng cho phép bạn xác định các giá trị cụ thể cho các trường trong bảng cơ sở dữ liệu, rồi sử dụng các giá trị đó khi bạn tạo các phiên bản của đối tượng mô hình.

bài viết liên quan:

Để lại một bình luận