Я пытаюсь установить начальное значение поля в форме. Поле не является частью модели, но когда я пытаюсь установить его значение, поле остается пустым. По моим исследованиям, это может быть связано с тем, что форма «связана», что имеет для меня какой-то смысл, но в этом случае поле не является частью модели.
Моя форма:
#Form for editing profile
class CatForm(forms.ModelForm):
pictureid = forms.CharField()
class Meta:
model = Cat
fields = ['name']
def __init__(self, *args, **kwargs):
picid = kwargs.pop("pictureid")
print(picid)
super(CatForm, self).__init__(*args, **kwargs)
self.fields['pictureid'] = forms.CharField(initial=picid, required=False)
Модель:
class Cat(models.Model):
name = models.CharField(max_length=34,null=False)
С точки зрения это называется так:
catform = CatForm(request.POST, pictureid=instance.id)
Я ожидал, что оно установит в поле значение исходного атрибута, но это не так. Я попытался проверить это, добавив строку, но не установил.
Вот что мне кажется:
class CatForm(forms.ModelForm):
class Meta:
model = Cat
fields = ['name']
def __init__(self, *args, **kwargs):
picid = kwargs.pop("pictureid")
super(CatForm, self).__init__(*args, **kwargs)
self.fields['pictureid'] = forms.CharField(initial=picid)
Мне также нужно было исключить «request.POST» из вызова this при запуске формы.