Нужно ли приложению Django приложение, которое использует каркас REST? - PullRequest
0 голосов
/ 22 марта 2020

Я создал приложение, использующее API REST для ввода информации в огромную уже существующую базу данных для компании. Приложение представляет собой веб-форму, которую пользователь заполняет. Затем мое приложение сериализует ответы пользователя в json, которое оно использует для отправки почтовых запросов к существующей базе данных.

Мое Django приложение также подключается к базе данных SQL Server, где оно сохраняет ответы пользователя на поля, которые я создал в моем models.py.

Есть ли лучший способ сделать это? Кажется, я сохраняю всю информацию дважды! Пустая трата пространства.

1 Ответ

1 голос
/ 23 марта 2020

Я не думаю, что вам нужно что-то в вашем models.py для этого конкретного приложения. Лично мне нравится подход, позволяющий форме обрабатывать процесс сохранения. Вы можете сделать что-то вроде этого:

import json
from django import forms

class MyForm(forms.Form):
    field1 = forms.CharField()
    field2 = forms.IntegerField()
    ...

    def save(self):
        json_data = json.dumps(self.cleaned_data)
        # insert code here to send the data to your REST API

Ваше представление может просто вызвать метод form.save() в вашем представлении, даже если эта форма не является ModelForm.

if request.POST:
    form = MyForm(request.POST)
    if form.is_valid():
        form.save()
        return redirect(success_url)
return render(request, 'form.html', {'form': form})
...