Если вы используете сервер Apache на своем локальном хосте (не делайте этого на производственном сервере), вы также можете публиковать результаты в скрипте, а не записывать его на консоль.
So вместо console.log
вы можете написать:
JSONP('http://localhost/save.php', {fn: 'filename.txt', data: json});
Тогда save.php
может это сделать
<?php
$fn = $_REQUEST['fn'];
$data = $_REQUEST['data'];
file_put_contents("path/$fn", $data);
Может быть, этот вопрос поможет вам: Установите Django InteGerfield по выбору = ... Имя .
Я цитирую от принятого ответа (с корректировками;)):
Поместите это в ваш класс ( (
status_choices
будет список, который передан на выбор
, вариант поля :
PENDING = 0
DONE = 1
STATUS_CHOICES = (
(PENDING, 'Pending'),
(DONE, 'Done'),
)
, тогда вы можете сделать order.Status = order .Done
.
Примечание , что вы не должны реализовывать собственный способ для получения (читаемого) значения, Django обеспечивает метод Get_Status_Display
Отказ
Что я обычно делаю для этой ситуации:
Models.py
from static import ORDER_STATUS
status = models.PositiveSmallIntegerField(choices=ORDER_STATUS)
Static.py
ORDER_STATUS = ((0, 'Started'), (1, 'Done'), (2, 'Error'))
ORDER_STATUS_DICT = dict((v, k) for k, v in ORDER_STATUS)
Теперь вы можете сделать:
from static import ORDER_STATUS_DICT
order.status = ORDER_STATUS_DICT['Error']
Вы можете попробовать посылку Enum: http://pypi.python.org/pypi/enum/
Вам не нужен ваш метод STATUS_STR
- Django автоматически предоставляет get_status_display ()
, который имеет ровно то же самое.
Чтобы отменить, вы можете использовать это:
def set_order_status(self, val):
status_dict = dict(ORDER_STATUS)
self.status = status_dict[val][0]
Теперь вы можете сделать:
order.set_order_status('Done')
Может быть, придерживаться метода на модели, как:
def status_code(self, text):
return [n for (n, t) in self.ORDER_STATUS if t == text][0]
, тогда вы сделаете:
order.status = order.status_code('Error')