Атрибут data ModelForm возвращает кортеж в оболочке Django - PullRequest
0 голосов
/ 02 ноября 2019

Прочитав, как создавать собственные виджеты Form, я обратил внимание на детали документации, передающие атрибуты виджета в конструкторе ModelForm.

https://docs.djangoproject.com/en/2.2/ref/forms/widgets/#customizing-widget-instances

Попытка эмулировать это в оболочке Django,Атрибут data экземпляра формы возвращает кортеж, а не словарь. Мне не ясно, что вызывает такое поведение.

from django.db import models


class Person(models.Model):
    lastname = models.CharField(verbose_name="Last Name", max_length=20)
    firstname = models.CharField(verbose_name="First Name", max_length=20)
    age = models.CharField(verbose_name="Age", max_length=20)
from django import forms
from .models import Person


class PersonForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super().__init__(args, kwargs)
        self.fields['firstname'].widget.attrs.update({'placeholder': 'First Name'})

    class Meta:
        model = Person
        fields = '__all__'
#django shell

>>> person = PersonForm({'lastname': 'Monster', 'firstname': 'Cookie', 'age': 53})
>>> person.data
({'lastname': 'Monster', 'firstname': 'Cookie', 'age': 53},)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...