TypeError此函数的关键字参数无效

时间:2019-01-01 11:50:21

标签: django forms model django-forms typeerror

我是Python的新手,试图创建表单字段并遇到问题。 我的表单在html上正确显示,但是当我尝试提交数据并将其保存到数据库时,却出现错误:

  / srdb /
处的

TypeError   “ send_date”是该函数的无效关键字参数

这是我的代码:

models.py

class Srdb(models.Model):
send_date = models.DateField()
send_weight = models.IntegerField(default=0, validators=[MaxValueValidator(10000), MinValueValidator(100)])
track_code = models.CharField(default=None, blank=False, max_length=20)
send_index = models.IntegerField(default=None, blank=False,
                                 validators=[MaxValueValidator(999999), MinValueValidator(100000)])
sender_fullname = models.CharField(default=None, blank=False, max_length=150)
sender_dob = models.DateField()
sender_adress = models.CharField(default=None, blank=False, max_length=400)

receiver_index = models.IntegerField(default=None, blank=False,
                                     validators=[MaxValueValidator(999999), MinValueValidator(100000)])
receiver_fullname = models.CharField(default=None, blank=False, max_length=150)
receiver_adress = models.CharField(default=None, blank=False, max_length=400)
sender = models.ForeignKey(Dostavshik, on_delete=models.CASCADE, default=None, blank=False)

def __str__(self):
    return str(self.id)

forms.py

class SrdbForm(forms.Form):
send_date = forms.DateField(widget=forms.DateInput(attrs={'type': 'date'}), label='Дата Отправки')
send_weight = forms.IntegerField(initial=0, validators=[MaxValueValidator(10000), MinValueValidator(100)],
                                 label='Отправленный Вес (граммы)')
track_code = forms.CharField(max_length=20,
                             widget=forms.TextInput(attrs={'placeholder': 'Код Отслеживания Посылки'}),
                             label='Трек Код')
send_index = forms.IntegerField(validators=[MaxValueValidator(999999), MinValueValidator(100000)],
                                widget=forms.TextInput(attrs={'placeholder': 'Индекс Почты Отправления'}),
                                label='Индекc Отправления')
sender_fullname = forms.CharField(max_length=150,
                                  widget=forms.TextInput(attrs={'placeholder': 'Отправитель'}),
                                  label='ФИО отправителя')
sender_dob = forms.DateField(widget=forms.DateInput(attrs={'type': 'date'}), label='Дата Рождения Отправителя')
sender_adress = forms.CharField(max_length=200,
                                widget=forms.TextInput(attrs={'placeholder': 'Полный Адрес Отправителя'}),
                                label='Адрес отправителя')

# Получатель
receiver_index = forms.IntegerField(validators=[MaxValueValidator(999999), MinValueValidator(100000)],
                                    widget=forms.TextInput(attrs={'placeholder': 'Индекс Почты Получения'}),
                                    label='Индекс Получателя')
receiver_fullname = forms.CharField(max_length=100,
                                    widget=forms.TextInput(attrs={'placeholder': 'Получатель'}),
                                    label='ФИО Получателя')
receiver_adress = forms.CharField(max_length=200,
                                  widget=forms.TextInput(attrs={'placeholder': 'Полный Адрес Получателя'}),
                                  label='Адрес Проживания Получателя')
sender = forms.ModelChoiceField(queryset=Dostavshik.objects.all(),
                                label='Отправил Доставщик')

views.py

def srdb(request):
form_srdb = SrdbForm()
if request.method == 'POST':
    form_srdb = SrdbForm(request.POST)
    if form_srdb.is_valid():
        Srdb.objects.create(**form_srdb.cleaned_data)
        messages.success(request, 'Данные Успешно Сохранены')
context = {
    'form_srdb': form_srdb
}
template = 'srdb.html'
return render(request, template, context)

提交后总会出现此错误:

  / srdb /
处的

TypeError   “ send_date”是该函数的无效关键字参数

0 个答案:

没有答案