====== Meta ogólnie ======
Opcje ''Meta'' w formularzach i modelach Django mają pewne podobieństwa, ale nie są identyczne. Oto kilka wspólnych opcji, ale także kilka różnic:
===== Wspólne opcje dla formularzy i modeli =====
==== model ====
* Wskazuje na model, z którego formularz lub model ma być utworzony.
class MyModelForm(forms.ModelForm):
class Meta:
model = MyModel
==== fields ====
* Określa listę pól, które powinny być uwzględnione w formularzu lub modelu.
class MyModelForm(forms.ModelForm):
class Meta:
model = MyModel
fields = ['field1', 'field2']
===== Opcje specyficzne dla modeli: =====
==== exclude ====
* Lista pól modelu, które mają zostać pominięte podczas tworzenia formularza.
class MyModelForm(forms.ModelForm):
class Meta:
model = MyModel
exclude = ['field_to_exclude']
==== widgets ====
* Słownik definiujący, jakie widgety mają być używane dla konkretnych pól modelu.
class MyModelForm(forms.ModelForm):
class Meta:
model = MyModel
widgets = {
'field1': forms.TextInput(attrs={'class': 'custom-class'}),
'field2': forms.Textarea(attrs={'rows': 3}),
}
===== Opcje specyficzne dla formularzy =====
==== labels ====
* Słownik definiujący niestandardowe etykiety dla pól formularza.
class MyForm(forms.Form):
class Meta:
labels = {
'field1': 'Custom Label 1',
'field2': 'Custom Label 2',
}
==== help_texts ====
* Słownik definiujący niestandardowe teksty pomocy dla pól formularza.
class MyForm(forms.Form):
class Meta:
help_texts = {
'field1': 'Custom help text for Field 1',
'field2': 'Custom help text for Field 2',
}
==== error_messages ====
* Słownik definiujący niestandardowe komunikaty o błędach dla pól formularza.
class MyForm(forms.Form):
class Meta:
error_messages = {
'field1': {'required': 'This field is required.'},
'field2': {'invalid': 'Invalid value for Field 2'},
}
Podsumowując, choć istnieje pewne podobieństwo w używaniu opcji ''Meta'' w formularzach i modelach, to jednak obiekt ''Meta'' dostosowuje się do specyfiki zastosowania. Dokumentacja Django zawiera pełen zestaw dostępnych opcji w kontekście formularzy: [[https://docs.djangoproject.com/en/stable/ref/forms/api/#django.forms.Form.Meta|Django - Form and field options]], a w kontekście modeli: [[https://docs.djangoproject.com/en/stable/topics/db/models/#meta-options|Django - Meta options]].