django сохранить модель ForeignKey отношение - PullRequest
8 голосов
/ 17 февраля 2011

в моей моделии extjs ... я не нашел никакого решения о сохранении моего поста

я не имел никакого отношения к своей внешней ключе .. в основном я хочу создать слой, чем когда я хочу добавитьв моем слое, я хочу сохранить свою точку с идентификатором слоя ....

Ответы [ 2 ]

12 голосов
/ 03 августа 2012

Более эффективный способ - указать внешний ключ, добавив в конце «_id», например:

cs = Point(layers_id = mid, meta = metas)
cs.save()

НЕ делайте слоев = XXX.objects.get (id = ###), потому что это удваивает количество запросов к базе данных.

ТАКЖЕ ... вы не чистите здесь свои данные POST, что довольно опасно. Получите это так:

from django import forms
id_field = forms.IntegerField()
layer_id = id_field.clean(request.POST.get("layerId", "")
9 голосов
/ 17 февраля 2011

Полезно опубликовать трассировку, чтобы понять вашу проблему (для будущих вопросов).

Мне кажется, что вы передаете число в свой атрибут Point экземпляра layers, который может вызватьValueError.Единственное место, где вы можете передать число в поле внешнего ключа, - это форма django, которая выполнит поиск за вас.

Вместо этого вам нужно назначить фактический Layer экземпляр.

cs = Point()
cs.layers = Layer.objects.get(id=mid)
cs.meta = metas
cs.save()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...