Login

StringField: CharField with no max_length for Postgres

Author:
cdcarter
Posted:
May 5, 2019
Language:
Python
Version:
2.1
Score:
0 (after 0 ratings)

Django's CharField requires a max_length, and TextField displays a multi- line widget, but in Postgres there's no reason to add an arbitrary max thanks to the varlena storage format. So this is a TextField that displays as a single line instead of a multiline TextArea.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
class StringField(models.TextField):
    """ A simple unlimited length string field. 
    
    Django's CharField requires a max_length, and TextField displays a multi-
    line widget, but in Postgres there's no reason to add an arbitrary max
    thanks to the `varlena` storage format. So this is a TextField that 
    displays as a single line instead of a multiline TextArea.

    That's all."""

    def formfield(self, **kwargs):
        # skip TextField's override of models.Field.formfield
        return models.Field.formfield(self, **kwargs)

More like this

  1. Template tag - list punctuation for a list of items by shapiromatron 8 months, 3 weeks ago
  2. JSONRequestMiddleware adds a .json() method to your HttpRequests by cdcarter 9 months ago
  3. Serializer factory with Django Rest Framework by julio 1 year, 3 months ago
  4. Image compression before saving the new model / work with JPG, PNG by Schleidens 1 year, 4 months ago
  5. Help text hyperlinks by sa2812 1 year, 5 months ago

Comments

Please login first before commenting.