私はフォームをアップロードするためにdjangoアプリケーションを作っています。私は標準的な方法でそれをやっていないが、それでも動作することを知っている。私の問題は複数のデータベースに関連しています。私は次のようにsetting.pyで3つのデータベースを定義している:save()djangoで別のDBを選択
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'django',
'USER': 'root',
'PASSWORD': 'testing',
'HOST': 'localhost', # Or an IP Address that your DB is hosted on
'PORT': '3306',
},
'Firewall': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'Firewall_Policies',
'USER': 'root',
'PASSWORD': 'testing',
'HOST': 'localhost', # Or an IP Address that your DB is hosted on
'PORT': '3306',
},
'CES': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'CES_Policies',
'USER': 'root',
'PASSWORD': 'testing',
'HOST': '127.0.0.1', # Or an IP Address that your DB is hosted on
'PORT': '3306',
}
}
必要なクラスのモデルは次のようになります。
class ID_Table(models.Model):
FQDN = models.CharField(max_length=128, db_column="FQDN")
CES_Using = models.CharField(max_length=256, db_column="CES_Using")
MSISDN=models.CharField(max_length=16, db_column="MSISDN")
IPv4 = models.CharField(max_length=16, db_column="IPv4")
Unique_ID = models.CharField(max_length=64, db_column="Unique_ID")
Subscription = models.CharField(max_length=128, db_column="Subscription")
class Meta:
db_table='ID_Table'
そしてforms.pyファイルがあるとして:
class ID_TableForm(forms.ModelForm):
class Meta:
model = ID_Table
fields = ['FQDN', 'CES_Using', 'MSISDN', 'IPv4', 'Unique_ID', 'Subscription']
views.pyファイルは次のようなものです:
def add_table_page(request, table_specified):
request.session.set_expiry(2000)
if request.session.get('user_auth') == 'yes':
if request.method=="POST" and table_specified=='ID_Table.html':
img = ID_TableForm(request.POST, request.FILES)
img.FQDN = request.POST['FQDN']
img.CES_Using = request.POST['CES_Using']
img.MSISDN = request.POST['MSISDN']
img.IPv4 = request.POST['IPv4']
img.Unique_ID = request.POST['Unique_ID']
img.Subscription = request.POST['Subscription']
img.save(using='Firewall')
return render(request, table_specified)
return HttpResponseRedirect('../login')
私の問題は、save()関数でUSINGコマンドを選択できないことです。それは私に次のエラーを与える:
save() got an unexpected keyword argument 'using'
私が使用しての単語を削除し、デフォルトのデータベースに同じ名前のテーブルを作成した場合、正常にデータを挿入するのに対し。私は、デフォルトのデータベースにないテーブルに情報を格納したいと思います。
ありがとうスヨンくらいモーセが...私は感謝しています。それは完全に働いた:) –