213 self.init_widget(widget) |
213 self.init_widget(widget) |
214 # ordering number for this field instance |
214 # ordering number for this field instance |
215 self.creation_rank = Field.__creation_rank |
215 self.creation_rank = Field.__creation_rank |
216 Field.__creation_rank += 1 |
216 Field.__creation_rank += 1 |
217 |
217 |
|
218 def as_string(self, repr=True): |
|
219 l = [u'<%s' % self.__class__.__name__] |
|
220 for attr in ('name', 'eidparam', 'role', 'id', 'value'): |
|
221 value = getattr(self, attr) |
|
222 if value is not None and value is not _MARKER: |
|
223 l.append('%s=%r' % (attr, value)) |
|
224 if repr: |
|
225 l.append('@%#x' % id(self)) |
|
226 return u'%s>' % ' '.join(l) |
|
227 |
218 def __unicode__(self): |
228 def __unicode__(self): |
219 return u'<%s name=%r eidparam=%s role=%r id=%r value=%r visible=%r @%x>' % ( |
229 return self.as_string(False) |
220 self.__class__.__name__, self.name, self.eidparam, self.role, |
230 |
221 self.id, self.value, self.is_visible(), id(self)) |
231 def __str__(self): |
|
232 return self.as_string(False).encode('UTF8') |
222 |
233 |
223 def __repr__(self): |
234 def __repr__(self): |
224 return self.__unicode__().encode('utf-8') |
235 return self.as_string(True).encode('UTF8') |
225 |
236 |
226 def init_widget(self, widget): |
237 def init_widget(self, widget): |
227 if widget is not None: |
238 if widget is not None: |
228 self.widget = widget |
239 self.widget = widget |
229 elif self.choices and not self.widget.vocabulary_widget: |
240 elif self.choices and not self.widget.vocabulary_widget: |