On 24/01/2019 9:14 am, 'Odile Lambert' via Django users wrote:

Hello

I have problems with the Charfield max_length. In the source code, the possibility exists to have max_length = None but it does not pass Django check when  models.py. contains a charfield = None

I can understand that there is a need for such a max_length form the database point of view .


When you run migrate it establishes the size of the Char field *in the database*. Therefore it can only be set once per migration.

My need is the following:

I have a set of  fields whose content in the database is a binary code of maximum 180 bits. Most of the time it will be much shorter and there is  in the form a field (max size) giving this maximum size.

The user needs to input this field in the database as a Character string of 0 and 1. using hexadecimal fields would be very unpractical. Last but not least, I am using the admin to enter these data in the database.

In a first shot, I used a Charfield and*I overwrote the field in the init to set the maximum length to the value chosen by the user. I also modifed the attributes of the widget. But at the end the HTML contains a texinput with the max length set in the model.
*

Is this an admin feature or did I miss something?


A TextField is a varying length character field. Might be of interest.

A binary field requires bytes not text. I think if I needed binary data entered by a user I would use a CharField with a reasonable max_length and in the model.save() method I would convert/interpret the data entered into precisely the binary format I needed and then programmatically store it into a "parallel" binary field. I would probably make it readonly in the Admin or just not display it.

I'm not sure about using binary fields with a choice attribute but that might be another thing to research.

You can certainly use choices in a CharField to totally restrict the data entered.

. Any other suggestion on how to handle these fields would be welcomed.


It might be easier to offer advice if your use-case was more clear.

--
You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscr...@googlegroups.com <mailto:django-users+unsubscr...@googlegroups.com>. To post to this group, send email to django-users@googlegroups.com <mailto:django-users@googlegroups.com>.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/23ff10f1-41d5-8da1-18a4-07d457be8756%40laposte.net <https://groups.google.com/d/msgid/django-users/23ff10f1-41d5-8da1-18a4-07d457be8756%40laposte.net?utm_medium=email&utm_source=footer>.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Django 
users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/e55ea10b-7fc6-efd9-ec87-02b5b75368f2%40dewhirst.com.au.
For more options, visit https://groups.google.com/d/optout.

Reply via email to