python - Django - 使用 pk_url_kwarg 选择性地查询模型
问题描述
考虑这两个模型并查看:
模型.py
class BHA_List(models.Model):
well = models.ForeignKey(WellInfo, 'CASCADE', related_name='bha_list')
bha_number = models.CharField(max_length=100)
class BHA_overall(models.Model):
bha_number = models.ForeignKey(BHA_List, 'CASCADE', related_name='bha_overall')
drill_str_name = models.CharField(max_length=111)
depth_in = models.CharField(max_length=111)
视图.py
class BHA_UpdateView(UpdateView):
model = BHA_overall
pk_url_kwarg = 'pk_alt'
form_class = BHA_overall_Form
据我了解,pk_url_kwarg = 'pk_alt'
将查询并返回model = BHA_overall
.
假设我使用了一个不同于CBV
的UpdateView
,并且想要实现两个模型。所以是这样的:
model = (BHA_overall, BHA_List)
。有什么方法可以强制我pk_url_kwarg = 'pk_alt'
只在 中查询和返回实例BHA_List
,但强制我get_object()
在 中返回对象BHA_overall
?我CBV
应该使用什么?
解决方案
您可以只使用“查看”并定义发布和获取方法。大约是这样的:
class SomeView(View):
model = BHA_List
template_name = 'some.html'
def get(request, **kwargs):
overall = BHA_overall.objects.all()
return render(request,
self.template_name,
locals())
def get(request, **kwargs):
return render(request, self.template_name, {})
推荐阅读
- python - 在python中将多个csv列表绘制成一张图
- mysql - 从 UserDSN 或 ODBC 文件创建“Workbook.Connections("MyDBx").ODBCConnection”
- conditional-statements - 将条件写入 systemd 单元文件的最佳方法
- matplotlib - 从 cartopy 文档运行样本时如何处理分段错误?
- c# - 有没有办法获取在我们的 catch 块中调用的 WebException 响应,但是在我们的 in try 块中查看响应
- html - Asp.Net Core 2.1 静态文件
- postgresql - 无法从 Cloud Build docker run 步骤连接到 Cloud SQL
- php - 如何使用 force-login 插件将 wordpress 中的订单接收页面列入白名单
- python - 如何使用 python 套接字库通过 adhoc wifi 广播
- python - Chromedriver 中的 ChromeOptions、功能和首选项有什么区别?