【发布时间】:2016-04-13 10:35:09
【问题描述】:
我正在尝试找到正确的方法:
用户服务:
/api/<country>/users
/api/us/users
该服务应使用与 URL 中国家/地区对应的数据库。
settings.py:
DATABASES = {
'default': {},
'us': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'XXX_US',
'USER': 'US',
'PASSWORD': 'XXX',
'HOST': 'localhost',
'PORT': '5432',
},
'es': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'XXX_ES',
'USER': 'ES',
'PASSWORD': 'XXX',
'HOST': 'localhost',
'PORT': '5432',
} }
将 ModelViewSet I 中的数据库设置为:
class UserViewSet(viewsets.ModelViewSet):
model = User
serializer_class = UserSerializer
def get_queryset(self):
country = self.kwargs['country']
return User.objects.using(country).all()
当我尝试执行 POST 或 PUT 时出现问题。我是否必须覆盖序列化程序的 create() 或 save() 方法?有没有其他方法可以做到这一点?
非常感谢!
【问题讨论】:
-
你现在有什么问题?
-
我正在尝试找到在创建/保存时设置数据库的方法,就像 get_queryset 中的“使用”函数一样。
标签: python django database django-rest-framework