Как я могу отправить данные в базу данных из представления в Django? - PullRequest
0 голосов
/ 21 апреля 2019

Я создал форму в своем проекте Django, теперь я хотел бы, чтобы эта форма взаимодействовала с базой данных.

Как правило, когда пользователь вводит некоторые данные, они должны быть отправлены в базу данных. Примечание: у меня уже есть база данных в моем проекте django, я определил ее в моем settings.py , но я не должен отправлять данные в эту БД, а в другую базу данных, поскольку эта БД будет взаимодействовать с другим скриптом Python.

Теперь, что я не знаю, как я могу использовать другую базу данных в Django? Где я должен определить всю вторую конфигурацию базы данных?

Вот как выглядит мой основной вид на данный момент:

def input(request):
    # if this is a POST request we need to process the form data
    if request.method == 'POST':
        # create a form instance and populate it with data from the request:
        form = InputForm(request.POST)
        # check whether it's valid:
        if form.is_valid():
            # process the data in form.cleaned_data as required
            # ...
            # redirect to a new URL:
            messages.success(request, f"Success")

    # if a GET (or any other method) we'll create a blank form
    else:
        form = InputForm()

    return render(request,
                  "main/data.html",
                  context={"form":form})

1 Ответ

1 голос
/ 21 апреля 2019

Вам необходимо определить вторую базу данных в настройках, см .: https://docs.djangoproject.com/fr/2.2/topics/db/multi-db/

Затем вы просто сохраните форму в определенной базе данных, например: form.save(using='database_name')

Или, если выЕсли вы используете его для конкретной модели в вашем проекте, вы можете перегрузить метод сохранения этой модели, чтобы сохранить его в другой БД:

class SomeModel(models.Model):
    foo = models.CharField(max_length=100)

    def save(self, ...): # ALL the signature
        super(SomeModel, self).save(using='database_name')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...