Я пытаюсь сохранить новый объект из модели django, используя запрос запроса данных POST. Это часть обработчика PISTON. Я видел это в многочисленных примерах, но я просто не могу заставить его работать.Как сохранить модель Django из запроса.POST?
Вот мой код:
class FestHandler(BaseHandler):
model = Deal
def create(self, request):
"""
Creates a new fest.
"""
attrs = self.flatten_dict(request.POST)
postcopy = request.POST.copy()
if self.exists(**attrs):
return rc.DUPLICATE_ENTRY
else:
loc = Location.objects.get(pk=attrs['location'])
postcopy['location'] = loc
fest = Fest(postcopy)
fest.save()
return fest
Здесь ошибка я получаю каждый раз:
Exception was: int() argument must be a string or a number, not 'QueryDict'
Я понимаю, что означает, что ошибка, поэтому в основном я спрашиваю, как я могу сохранить новый «Fest», передавая весь словарь POST без необходимости вводить ключи вручную каждый раз, например:
loc = Location.objects.get(pk=attrs['location'])
fest = Fest(
location=loc,
name=attrs['name'],
description=attrs['description'],
details=attrs['details'],
)
Спасибо за помощь!
Хм. Казалось, это сработало. Однако теперь он возвращает форму HTML после сохранения, вместо объекта Fest, который PISTON передает JSON. Есть ли простой способ изменить это? Или, есть ли способ сделать это без использования «Формы»? Благодаря! –
Ничего, я понял. Извините за мои глупые вопросы, я до сих пор не совсем доволен Django OR python. Спасибо за вашу помощь! –