我是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”是该函数的无效关键字参数