Я пытаюсь переопределить метод get_form()
CreateView
. Моя веб-страница имеет две идентичные формы - одну для добавления «зарегистрированной» команды, а другую для добавления «незарегистрированной» команды. Если добавляется незарегистрированная команда, я хочу установить для поля team_name формы «Доступно». Как вы можете увидеть в моем коде ниже, я пытался достичь этого путем переопределения метода get_form()
Django __init __() получил неожиданный аргумент ключевого слова, используя CreateView
class TeamCreateView(LeagueContextMixin, CreateView):
model = Team
form_class = TeamForm
template_name = "leagueapp/editleague.html"
registered = False # the correct value of registered is passed in urls.py depending on the url that gets hit
# Overwrite the get_success_url() method
def get_success_url(self):
return '/league/editleague/' + self.kwargs.get('league_id')
def get_form(self, form_class):
form_kwargs = self.get_form_kwargs()
if not self.registered:
form_kwargs['team_name'] = "Available"
return form_class(**form_kwargs)
, но это дает мне ошибку __init__() got an unexpected keyword argument 'team_name'
. Что я делаю неправильно и/или есть лучший способ сделать это?
Edit: Это мой TeamForm
class TeamForm(ModelForm):
class Meta:
model = Team
fields = ['team_name', 'captain', 'registered', 'team_location', 'phone', 'email', 'team_payment']
widgets = {
'team_name':TextInput(attrs={'class':'form-control input-md'}),
'captain':TextInput(attrs={'class':'form-control input-md'}),
'phone':TextInput(attrs={'class':'form-control input-md'}),
'email':TextInput(attrs={'class':'form-control', 'type':'email'}),
'team_location':TextInput(attrs={'class':'form-control input-md'}),
'team_payment':TextInput(attrs={'class':'form-control'}),
'registered':HiddenInput(),
}
Извините, что я принял этот ответ раньше - думал, что это то, что мне нужно, но это не так. Это вызывает ошибку, указывающую, что поле team_name требуется. – Ben