Django:self.success_messages % fiche.__dict__ 中的“%”是什么意思
Django : What does "%" mean in self.success_messages % fiche.__dict__
自从学习Python以来,经常看到和使用:
class FicheDeleteView(LoginRequiredMixin, DeleteView):
model = Fiche
success_url = reverse_lazy('fiche-list')
success_messages = "La Fiche %(ref_id)s a bien été supprimée"
def delete(self, request, *args, **kwargs):
fiche = self.get_object()
messages.success(self.request, self.success_messages %
fiche.__dict__)
return super(FicheDeleteView, self).delete(request, *args, **kwargs)
即使我看到了这个机制的效果,我也不确定是否理解。
这是否意味着:我将所有 FICHE 字典发送给“反向惰性”,并在我的 message.success 中检索 fiche.ref_id 与 %(ref_id)s ?
%
运算符是一个旧的字符串格式化占位符,它允许您在字符串中包含变量。因此,如果您想在字符串中包含变量 name
,则可以使用 %
运算符作为占位符。
name = 'world'
print('Hello, %s' % name)
>>> Hello, world
在您的示例中,success_message
中的 %
运算符将字典作为变量,然后从该字典中的键 ref_id
访问值。
success_messages = "La Fiche %(ref_id)s a bien été supprimée"
example_dict = {'key_1': 'value_1', 'ref_id': 'value_2'}
print(success_messages % example_dict)
>>> La Fiche value_2 a bien été supprimée
从 Python >= 3.6 开始,您可以使用 f-strings 使其更具可读性:
example_dict = {'key_1': 'value_1', 'ref_id': 'value_2'}
print(f"La Fiche {example_dict['ref_id']} a bien été supprimée")
>>> La Fiche value_2 a bien été supprimée
您可以阅读有关 python 字符串格式的更多信息 here
自从学习Python以来,经常看到和使用:
class FicheDeleteView(LoginRequiredMixin, DeleteView):
model = Fiche
success_url = reverse_lazy('fiche-list')
success_messages = "La Fiche %(ref_id)s a bien été supprimée"
def delete(self, request, *args, **kwargs):
fiche = self.get_object()
messages.success(self.request, self.success_messages %
fiche.__dict__)
return super(FicheDeleteView, self).delete(request, *args, **kwargs)
即使我看到了这个机制的效果,我也不确定是否理解。
这是否意味着:我将所有 FICHE 字典发送给“反向惰性”,并在我的 message.success 中检索 fiche.ref_id 与 %(ref_id)s ?
%
运算符是一个旧的字符串格式化占位符,它允许您在字符串中包含变量。因此,如果您想在字符串中包含变量 name
,则可以使用 %
运算符作为占位符。
name = 'world'
print('Hello, %s' % name)
>>> Hello, world
在您的示例中,success_message
中的 %
运算符将字典作为变量,然后从该字典中的键 ref_id
访问值。
success_messages = "La Fiche %(ref_id)s a bien été supprimée"
example_dict = {'key_1': 'value_1', 'ref_id': 'value_2'}
print(success_messages % example_dict)
>>> La Fiche value_2 a bien été supprimée
从 Python >= 3.6 开始,您可以使用 f-strings 使其更具可读性:
example_dict = {'key_1': 'value_1', 'ref_id': 'value_2'}
print(f"La Fiche {example_dict['ref_id']} a bien été supprimée")
>>> La Fiche value_2 a bien été supprimée
您可以阅读有关 python 字符串格式的更多信息 here