Метод .update()
используется для обновления нескольких объектов. Как вы узнали, он обновит все объекты в наборе запросов.
Если я вас правильно понимаю, вы хотите обновить один экземпляр, но из вашего кода мне не ясно, какой это экземпляр.
Вы можете отфильтровать набор запросов, как предлагает @ozcanyarimdunya:
geometry.objects.filter(pk=geo_pk).update(...)
Следует отметить, что .update()
не вызывает .save()
в вашей модели и не генерирует какие-либо сигналы. Чтобы обновить отдельный объект, обычно предпочтительнее присвоить экземпляру новые значения и вызвать save, например, так:
geo = geometry.objects.get(pk=geo_pk)
geo.lat = lat
geo.lon = lon
geo.save()
В дополнение к этому общее соглашение заключается в том, чтобы использовать имена классов с большой буквы ([115 ] вместо geometry
).
У меня, казалось, была по крайней мере одна проблема с каждым из примеров выше. %{DOCUMENT_ROOT}
, казалось, сделал неправильную вещь в определенных местах и приблизительно /
, символы, кажется, отсутствуют. Вот мое решение, которое входит .htaccess
в веб-корне.
Вместо того, чтобы использовать два правила (один для случая, где файл при клиентах / найден, и один для не найденным), все, что я должен проверить, - то, если требуемый файл (или каталог) НЕ существует. Поскольку, если это существует, никакое изменение не необходимо, это может просто использовать файл, обеспеченный в клиентском dir. Вот код, на котором я обосновался:
RewriteEngine on
RewriteCond %{DOCUMENT_ROOT}/clients/$1/$2 !-f
RewriteCond %{DOCUMENT_ROOT}/clients/$1/$2 !-d
RewriteRule ^clients/([^/]+)/(.*)$ $2 [L]
спасибо за Вашу справку!
Попробуйте это:
RewriteEngine on
RewriteRule ^clients/abc/ - [L]
RewriteCond %{DOCUMENT_ROOT}clients/abc/$0 -f
RewriteRule .* clients/abc/$0 [L]
Я думаю, что Вы хотите что-то вдоль этих строк:
RewriteEngine on
RewriteCond %{DOCUMENT_ROOT}clients/$1/$2 -f
RewriteRule ^clients/([^/]+)/(.*)$ %{DOCUMENT_ROOT}clients/$1/$2 [L]
RewriteRule ^clients/([^/]+)/(.*)$ %{DOCUMENT_ROOT}$2 [L]
# If requested resource exists as a file or directory, skip next two rules
RewriteCond %{DOCUMENT_ROOT}/$1 -f [OR]
RewriteCond %{DOCUMENT_ROOT}/$1 -d
RewriteRule (.*) - [S=2]
#
# Requested resource does not exist, do rewrite if it exists in /archive
RewriteCond %{DOCUMENT_ROOT}/archive/$1 -f [OR]
RewriteCond %{DOCUMENT_ROOT}/archive/$1 -d
RewriteRule (.*) /archive/$1 [L]
#
# Else rewrite requests for non-existent resources to /index.php
RewriteRule (.*) /index.php?q=$1 [L]