Использование ответа сервера в качестве записи в виде таблицы внешнего ключа?

Вопрос:

Я сохраняю ответ сервера через команду Y.io с успехом, который выглядит так:

on: {
success: function (requestId, response){
sess_id = parseInt(response.responseText);
buildtable();
}
}

buildtable() создает смоделированные данные и использует переменную sess_id для заполнения столбца с меткой сеанса. Таким образом, каждое симулированное чтение данных связано с сеансом. мои модели для этих двух таблиц выглядят так:

class session(models.Model):
start_time = models.IntegerField()
end_time = models.IntegerField(null=True)

def __unicode__(self):
return unicode(self.pk)

class meterdata(models.Model):
time_elapsed = models.FloatField()
volts = models.FloatField()
amps = models.FloatField()
kW = models.FloatField()
kWh = models.FloatField()
session = models.ForeignKey(session)

def __unicode__(self):
return unicode(self.session)

когда я пытаюсь сохранить смоделированные данные в таблице meterdata, я получаю эту ошибку:

Cannot assign "5.0": "meterdata.session" must be a "session" instance

Я попытался вставить его как строку, int и float. Я также уверен, что на сессии есть сеанс, созданный в таблице сеансов. Как я могу убедиться, что код понимает, что этот номер относится к одному из идентификаторов в таблице сеансов?

edit: вот представление, которое вызывается при попытке сэкономить

@csrf_exempt
def save(request):
if request.method == 'POST':
rawdata1 = request.body
rawdata2 = json.loads(rawdata1)
for data in rawdata2:
x = meterdata(time_elapsed = data['time_elapsed'], volts = data['volts'], amps = data['amps'], kW = data['kW'], kWh = data['kWh'], session = data['session'])
x.save()
return HttpResponse(rawdata2)

Лучший ответ:

Позвольте мне угадать значение, которое вы указали, это идентификатор сеанса, поэтому система, сообщающая вам, Cannot assign "5.0": "meterdata.session" must be a "session" instance. Если эта проблема возникает, говоря об instance, просто добавьте id в переменную, чтобы сделать ее равной вашему значению, подобному session_id.

Другое решение, чтобы вы не получили ошибку этого instance, не используйте идентификатор.

Ex.

<select>
   {% for session in sessions %}
   <option value="{{ session }}">{{ session }}</option>
   {% endfor %}
</select>

Как вы заметили, я не использовал session.id вместо этого я использую session only. В этом разница между экземпляром, а не экземпляром.

Оцените статью
TechArks.Ru
Добавить комментарий