请考虑以下两个模型并查看:
models.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)
views.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
?
答案 0 :(得分:0)
您可以仅使用“查看”并定义发布和获取的方法。 大概是这样的:
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, {})