Могу ли я указать параметр экземпляра, если я использую формы. Форма? - PullRequest
0 голосов
/ 21 апреля 2019

В настоящее время я использую тип forms.Form для одной из моих форм, потому что мне нужно было указать для них много параметров, таких как набор запросов, отключен, требуется.

Фрагмент параметров, о которых я говорю в моем forms.py

class InputClassInformation(forms.Form):
    module = forms.ModelChoiceField(queryset=Module.objects.all())
    title = forms.CharField(disabled=True, required=False)

Форма позволит пользователям обновлять определенные поля в записи, это означает, что мне придется использовать параметр instance, как показано здесь https://docs.djangoproject.com/en/2.2/topics/forms/modelforms/#the-save-method. Однако я получаю эту ошибку, когда запускаю свой код в views.py

if Class.objects.filter(module__subject=subject).exists():
   a = Class.objects.filter(module__subject=subject)[0].pk
   form = InputClassInformation(request.POST, instance=a)

Ошибка :

TypeError at /input-class-info/
__init__() got an unexpected keyword argument 'instance'

Я знаю, что это было бы хорошо, если бы я использовал ModelForm, но попытка указать все параметры, которые мне нужны в ModelForm, была трудной, поэтому есть ли способ указать экземпляр, который я хочу обновить, пока используя forms.Form?

1 Ответ

0 голосов
/ 22 апреля 2019

Я не уверен, что это глупый вопрос, так как я не смог найти ответ, поэтому я опубликую ответ, чтобы завершить это в любом случае.

Как упомянул в вопросе @DanielRoseman, мы можем создавать экземпляры одних и тех же полей, используя один и тот же код в ModelForms.В моем случае я просто изменил свою форму на:

class InputClassInformation(forms.ModelForm):
    class Meta:
        model = Class
        fields = '__all__'
    module = forms.ModelChoiceField(queryset=Module.objects.all())
    title = forms.CharField(disabled=True, required=False)

и теперь я могу использовать экземпляр!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...