Изменение тире по умолчанию в поле select в формах Django, атрибут empty_label работает для поля ForeignKey, но не для CharField
Я пытаюсь создать форму, которая позволяет тату-салону заказывать консультации. Есть 2 поля выбора: выбор художника и выбор стиля татуировки. Вместо первого варианта поля выбора по умолчанию '--------', я бы хотел, чтобы в них было написано 'Предпочитаемый художник' и 'Стиль татуировки', соответственно.
models.py:
class ConsultationRequest(models.Model):
tattoo_styles = [
('water-color', 'Water Color'),
('blackwork', 'Blackwork'),
]
preferred_artist = models.ForeignKey(Artist, on_delete=models.CASCADE)
tattoo_style = models.CharField(max_length=50, choices = tattoo_styles )
forms.py:
class ArtInformationForm(ModelForm):
class Meta:
model = ConsultationRequest
fields = ['preferred_artist', 'tattoo_style']
def __init__(self, *args, **kwargs):
super(ArtInformationForm, self).__init__(*args, **kwargs)
self.fields['preferred_artist'].empty_label = 'Preferred Artist' # this works
self.fields['tattoo_style'].empty_label = 'Tattoo Style' # this doesn't work
Когда я отображаю эту форму в шаблоне, первым вариантом для выбора художника является "Предпочитаемый художник", но первым вариантом для выбора стиля татуировки по-прежнему являются черточки по умолчанию. Не знаю точно, почему так происходит. Я думаю, это связано с тем, что это два разных типа полей, одно из которых ForeignKey, а другое CharField. Спасибо за любую помощь в этом вопросе.