2017-01-24 5 views
0

私はフォームをアップロードするために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'

私が使用しての単語を削除し、デフォルトのデータベースに同じ名前のテーブルを作成した場合、正常にデータを挿入するのに対し。私は、デフォルトのデータベースにないテーブルに情報を格納したいと思います。

答えて

0

現在、saveメソッドにはusingパラメータがないフォームインスタンスがあります。あなたは、モデルインスタンスのsave方法にusingパラメータを渡す必要があります。

img_inst = img.save(commit=False) 
img_inst.save(using='Firewall') 
+0

ありがとうスヨンくらいモーセが...私は感謝しています。それは完全に働いた:) –

関連する問題