1
我想重寫初始化方法在這個表單我有。它看起來像這樣:Django窗體初始化關鍵錯誤與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):
我傳遞必要的數據(朋友,用戶等等),但它似乎並不在kwargs中。這裏有什麼問題?謝謝。
'fr'和'friend'有什麼區別?您使用'friend.name',但將fr設置爲朋友對象。 – ozgur
@ozgur沒有。是我的錯,我的壞。 – user3084860
你得到了什麼確切的錯誤? – ozgur