@@ -40,6 +40,7 @@ def __init__(self, *args, **kwargs):
4040 self ._meta_class .render_fields )
4141 super (BasePersonalisedStructBlock , self ).__init__ (* args , ** kwargs )
4242
43+ # Check "render_fields" are either a list or None.
4344 if isinstance (render_fields , tuple ):
4445 render_fields = list (render_fields )
4546
@@ -51,7 +52,13 @@ def __init__(self, *args, **kwargs):
5152 raise ValueError ('"render_fields" has to contain name(s) of the '
5253 'specified blocks.' )
5354 else :
54- setattr (self ._meta_class , 'render_fields' , render_fields )
55+ setattr (self .meta , 'render_fields' , render_fields )
56+
57+ # Template can be used only when "render_fields" is set to None.
58+ if self .meta .render_fields is not None \
59+ and getattr (self .meta , 'template' , None ):
60+ raise ValueError ('"render_fields" has to be set to None when using '
61+ 'template.' )
5562
5663
5764 def is_visible (self , value , request ):
@@ -87,13 +94,13 @@ def render(self, value, context=None):
8794 if not self .is_visible (value , context ['request' ]):
8895 return ""
8996
90- if self ._meta_class .render_fields is None :
97+ if self .meta .render_fields is None :
9198 return super (BasePersonalisedStructBlock , self ).render (
9299 value , context )
93100
94- if isinstance (self ._meta_class .render_fields , list ):
101+ if isinstance (self .meta .render_fields , list ):
95102 render_value = ''
96- for field_name in self ._meta_class .render_fields :
103+ for field_name in self .meta .render_fields :
97104 if hasattr (value .bound_blocks [field_name ], 'render_as_block' ):
98105 block_value = value .bound_blocks [field_name ] \
99106 .render_as_block (context = context )
0 commit comments