Я пытаюсь переопределить init метод на этой форме у меня есть. Это выглядит примерно так:Django Form Init Key Error с Kwargs
def __init__(self, *args, **kwargs):
fr = None
if kwargs.get('friend', False):
fr = Friend.objects.get(pk=kwargs.get('friend'))
super(CreateFriendForm, self).__init__(*args, **kwargs)
self.fields["{}_house".format(fr.name)] = forms.ModelChoiceField(queryset=Houses.objects.all(), required=False)
Итак, я хочу, чтобы захватить друг kwargs и использовать его, как вы видите выше. В зависимости от того, какой друг передан, я добавлю поле. В моих тестах я прохожу следующие данные:
data = {
"user": self.user.pk,
"friend": self.friend.pk,
"language": 'en'
}
friend = self.form(data)
# Validity
self.assertTrue(friend.is_valid())
friend.save()
Однако я получаю сообщение об ошибке, что есть ключ ошибка по адресу:
if kwargs.get('friend', False):
Я передаю необходимые данные (друг, пользователь , и т. д.), но, похоже, это не в кваргах. В чем проблема? Благодарю.
В чем разница между 'fr' и' friend'? Вы используете 'friend.name', но устанавливаете' fr' для объекта friend. – ozgur
@ozgur Нет. Опечатка с моей стороны, мой плохой. – user3084860
какая именно ошибка вы получаете? – ozgur