Я делаю проект, который содержит информацию из GPS, что при запуске сервера он загружает всю информацию с координатами объекта в файл KML, но теперь я не могу сохранить ее в БД в postgres на django. Мне нужно, чтобы при загрузке файлов они сохранялись в базе данных, на поле точек oject
class Device(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) # NOQA (ignore all errors on this line)
location = models.PointField(null=True, blank=True)
address = models.CharField(max_length=100)
city = models.CharField(max_length=50)
timezone = TimeZoneField()
@property
def shortened_id(self):
"""Get shortened version of id."""
return str(self.id)[-12:]
def get_gps_file_download():
CHROMEDRIVER_EXECUTABLE_PATH = '/usr/bin/chromedriver'
USERNAME = ''
PASSWORD = ''
chrome_options = Options()
chrome_options.add_argument('--no-sandbox')
# chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-dev-shm-usage')
prefs = {"download.default_directory" : os.path.join(settings.BASE_DIR, ' ')}
chrome_options.add_experimental_option("prefs",prefs)
# browser = webdriver.Chrome(options=chrome_options, executable_path=CHROMEDRIVER_EXECUTABLE_PATH)
browser = Chrome(chrome_options=chrome_options,
executable_path=CHROMEDRIVER_EXECUTABLE_PATH)
browser.get(' ')
# .until(ec.visibility_of_element_located((By.ID, "txtUserName")))
WebDriverWait(browser, 10)
browser.switch_to.frame(0)
gps_signin_email_input = browser.find_element_by_id('txtUserName')
gps_signin_email_input.send_keys(USERNAME)
gps_signin_password_input = browser.find_element_by_id("txtAccountPassword")
gps_signin_password_input.send_keys(PASSWORD)
gps_signin_button = browser.find_element_by_id("btnLoginAccount")
gps_signin_button.click()
session_id = ''
for cookie in browser.get_cookies():
print(cookie)
if cookie['name'] == 'ASP.NET_SessionId':
print(cookie['value'])
session_id = cookie['value']
break
WebDriverWait(browser, 10)
response = subprocess.check_output(
"""curl ... > file1.txt"""
% (session_id,),
shell=True,
)
# print(json.loads(response.decode("utf-8")))
file_list = ['file1.txt']
devices_list = []
for x in range(len(file_list)):
with open(file_list[x], 'r') as f:
data = f.read()
json_devices = json.loads(data)
devices_list = json_devices.get('d')
device_ids = devices_list.split('id:')
devices_list = list()
for id in device_ids:
real_id = id.split(',')[0]
if real_id.isnumeric():
devices_list.append(real_id)
print(devices_list)
for device in devices_list:
# Download file
# device_id = devices_list[0]
options = webdriver.ChromeOptions()
link = (" ... ".format(device))
browser.get(link)
dropdown = Select(browser.find_element_by_id("ddlDevices"))
dropdown.select_by_value(device)
gps_download_button = browser.find_element_by_id("btnSubmit")
gps_download_button.click()
return file_list