Я хочу создать простую форму в своем приложении с внешним ключом. У меня две базы данных, а по умолчанию - Django, а другая - устаревшая база данных.Ошибка при использовании форм модели Django с несколькими базами данных
Сообщение об ошибке, которое показывает следующее: Таблица «django.customer» не существует. Но я хочу выбрать другую базу данных, а не Django. Как я это делаю?
Это моя модель:
from django.db import models
from register.models import Customer
class Service(models.Model):
# ..
customer = models.ForeignKey('register.Customer', db_column='customer')
# ..
Это другая модель в другом приложении.
class Customer(models.Model):
codigo = models.AutoField(primary_key=True)
Оба приложения находятся в другой базе данных, а не в Django.
Мой settings.py:
DATABASES = {
'default': {
'NAME': 'django',
'ENGINE': 'django.db.backends.mysql',
'USER': 'my-user',
'PASSWORD': 'my-password',
'HOST': '',
'PORT': ''
},
'other-database': {
'NAME': 'other-database',
'ENGINE': 'django.db.backends.mysql',
'USER': 'my-user',
'PASSWORD': 'my-password',
'HOST': '',
'PORT': ''
}
}
В HTML я кладу это:
{{ form_service }}
Это мой forms.py
from attendance.models import Service
from register.models import Customer
from django.http import HttpResponseRedirect, HttpResponse
from django.core.exceptions import ValidationError
class FormService(ModelForm):
class Meta:
model = Service
fields = ('my_fields', 'my_fields', 'customer')
И это мой views.py
def service(request):
form_service = FormService()
return render(request, 'service.html', {'form_service': form_service})
Я думаю, что ошибка здесь. Возможно, мне пришлось определить мою другую базу данных, она должна быть выбрана в базе данных Django.
Я пробовал это, но не работал.
def service(request):
queryset = Customer.objects.using('other-database').all()
form_service = FormService(instance = queryset)
return render(request, 'service.html', {'form_service': form_service})
В базе данных 'Django' вы подразумеваете базу данных по умолчанию в файле' settings.py'? У вас есть вторая база данных, определенная в файле 'settings.py'? – GwynBleidD
Пожалуйста, будьте более ясны с вашим именем вопроса, так что это может быть полезно другим людям с вашей проблемой. – Gocht
Да, мои settings.py с двумя определенными базами данных. –