python - django rest framework - 更新 ModelViewSet 类变量
问题描述
我有一个如下所示的 ModelViewSet
class BusinessViewSet(ModelViewSet):
filterset_class = BusinessFilter
serializer_class = BusinessSerializer
ordering_fields = [
"source",
"xl_source",
"company_name",
"contact_title",
"category",
"contact_name",
"description",
"tags",
"business_hours",
"location",
"website",
"phone",
"email",
"social_media",
"address",
"is_ecommerce",
"is_verified",
"ownership",
"supplemental_information",
"products",
"location_street",
"location_city",
"location_state",
"location_zip",
]
def get_queryset(self):
referer = self.request.META["HTTP_REFERER"]
try:
source = referer.split("source=")[1]
except Exception as e:
print(e)
source = None
if source == None:
queryset = Business.objects.all()
elif source == 'SBASpecial':
queryset = SBABusiness.objects.all()
self.serializer_class = SBABusinessSerializer
self.filterset_class = SBABusinessFilter
self.ordering_fields = [
'name_and_trade_of_firm',
'contact',
'address_city',
'capabilities_narrative',
'ownership_self_certs',
'email_address',
'www_page_url',
'phone_number',
'year_established',
'keywords',
'naics_codes',
]
else:
queryset = Business.objects.filter(xl_source=source)
return queryset
如您所见,如果source
是SBASpecial
,我尝试更改类变量serializer_class
,filterset_class
和ordering_fields
inside get_queryset
。显然这是行不通的。我查看了 django rest 框架文档,没有任何东西可以帮助我解决这个问题。我能做些什么?任何帮助表示赞赏。提前致谢
解决方案
推荐阅读
- python - Python:将参数传递给由生成器表达式创建的生成器对象?
- node.js - Passport 会话适用于 Postman,但不适用于浏览器
- php - 如何使用PHP平台在2分钟内上传1GB+的视频文件
- python-3.x - 即将到来的值的滚动平均值 - Python 3,Pandas
- c# - .net 应用程序中缺少命名空间和引用错误
- javascript - querySelector 在单独的脚本文件中使用时返回 null
- qr-code - Google Charts API(QR 码)返回 HTTP 错误 502
- javascript - 如何将二维数组从 JavaScript 传递到 ejs 中的脚本标签?
- java - Java:如何根据提供的模式从字符串中提取值并将其填充到 Map?
- mysql - 从同一查询的多个组中选择一行