@@ -139,17 +139,22 @@ def __init__(
139
139
# TODO: Do we really want to enforce null *at all*? Shouldn't this
140
140
# better honour the null setting of the translated field?
141
141
self .null = True
142
+
143
+ # We preserve original blank value for translated fields,
144
+ # when they're in 'required_languages'.
145
+ # So they will be only required if original field itself was required.
146
+ original_blank = self .blank
142
147
self .blank = True
143
148
144
- # Take required_languages translation option into account
149
+ # Take required_languages translation option into account.
145
150
trans_opts = translator .get_options_for_model (self .model )
146
151
if trans_opts .required_languages :
147
152
required_languages = trans_opts .required_languages
148
153
if isinstance (required_languages , (tuple , list )):
149
154
# All fields
150
155
if self .language in required_languages :
151
156
# self.null = False
152
- self .blank = False
157
+ self .blank = original_blank
153
158
else :
154
159
# Certain fields only
155
160
# Try current language - if not present, try 'default' key
@@ -161,7 +166,7 @@ def __init__(
161
166
# TODO: We might have to handle the whole thing through the
162
167
# FieldsAggregationMetaClass, as fields can be inherited.
163
168
# self.null = False
164
- self .blank = False
169
+ self .blank = original_blank
165
170
166
171
# Adjust the name of this field to reflect the language
167
172
self .attname = build_localized_fieldname (self .translated_field .name , language )
0 commit comments