django - taille - redimensionner tableau libreoffice




Comment puis-je définir la taille des lignes, des colonnes dans textField dans les modèles Django (5)

La première réponse est peut-être la bonne pour la question, mais le package django-widget-tweaks est également une excellente option pour modifier plusieurs attributs, par exemple définir une classe CSS spécifique.

Alors considérez cette option si vous voulez modifier facilement d'autres attributs.

J'ai ce modèle

summary         = models.TextField()

Mais je veux avoir seulement 4 lignes et 15 colonnes.

Aussi, si je le fais, je dois réinstaller la base de données ou non.


Le django-widget-tweaks rend cela très simple. Dans votre modèle:

{% load widget_tweaks %}
...
{{ mytextareafield|attr:"rows:3" }}

Tout d'abord, vous devez installer tweaks widget django en utilisant:

pip install django-widget-tweaks

Ensuite, vous devez aller à setting.py et ajouter 'widget_tweaks' aux applications installées comme ceci:

INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'widget_tweaks',
)

Ensuite, allez dans votre modèle HTML et remplacez-le par {{field}}, pour redimensionner votre champ de texte:

{% load widget_tweaks %}
{{ mytextareafield|attr:"rows:4" | "cols:30" }}

Voici l'équivalent spécifique au formulaire pour modifier l'attribut rows / cols en une zone de texte. Utilisez le widget forms.Textarea et définissez les valeurs du dictionnaire attrs:

class LocationForm(forms.ModelForm):

    auto_email_list = forms.CharField(required=False, widget=forms.Textarea(attrs={'rows': 2, 'cols': 40}))
    notes = forms.CharField(required=False, widget=forms.Textarea(attrs={'rows': 4, 'cols': 40}))

    class Meta:
        model = Location
        exclude = ['id']

J'espère que cela aide ceux qui recherchent une forme spécifique


TextField est un type de champ qui, lorsqu'il est utilisé par défaut par ModelForm utilise le widget Textarea . Fields traitent du stockage backend, des widgets avec l'édition frontale.

Vous devez donc spécifier le widget que vous souhaitez utiliser avec votre champ. Vous souhaitez créer un ModelForm et spécifier le widget vous souhaitez utiliser, conformément à la documentation :

from django import forms

class MyForm(forms.ModelForm):
    class Meta:
        model = MyModel
        widgets = {
          'summary': forms.Textarea(attrs={'rows':4, 'cols':15}),
        }




django-models