我需要在html中创建一个切换,允许我在两个单独的模型中切换数据。以下是我用过的html中的代码行:
HTML:
<a class="btn btn-success pull-right" href="{{ url }}{{ seller|yesno:"?seller=true,?seller=false,?seller=test"}}" >
查看:
seller = False
def get(self, request, *args, **kwargs):
if self.request.GET.get('seller', None) == '?seller=true':
self.model = CarSeller
self.seller = True
elif self.request.GET.get('seller', None) == '?seller=false':
self.model = VanSeller
self.seller = False
return super().get(request, *args, **kwargs)
def get_queryset(self):
if self.model == CarSeller:
com = self.model.objects.filter(
carparty=self.vehicle.proff.car_contact.garage,
)
else:
com = self.model.objects.filter(
vanparty=self.vehicle.proff.van_contact,
)
return communication
def get_context_data(self, **kwargs):
context['seller'] = self.seller
context['url'] = reverse_lazy(
"work:contact:comm_intro",
kwargs={'vehicle_id': self.vehicle.id}
)
return context
根据我对阅读有关使用yesno的理解,这应该有效,但是一旦我点击按钮,它将交换为true,但是当我再次按下它时,值不会变回false。所有帮助赞赏使用| yesno或任何建议你如何认为我应该显示这一点。您可能看到的与模型无关且与问题无关的任何变量可能是因为我已经将其略过了问题。
由于
(还需要其他任何东西让我知道)
答案 0 :(得分:0)
卖家的价值为'true'
,'false'
(或test
None
)。您应该从比较中的字符串中删除?seller=
,例如
self.request.GET.get('seller', None) == 'true'
由于None
是get()
的默认设置,因此您可以进一步简化为
self.request.GET.get('seller') == 'true'