我遇到此错误-TypeError:kitty()得到了一个我毫无头绪的意外关键字参数'startdate'。可能是日期格式问题。
模型
from django.db import models
import datetime
from datetime import datetime
from multiselectfield import MultiSelectField
class kitty(models.Model):
company = models.CharField(max_length=3)
code = models.CharField(max_length=6)
type = models.CharField(max_length=10)
name = models.CharField(max_length=100)
startdate = models.DateField
durinmonths = models.IntegerField()
enddate = models.DateField
totalmembers = models.IntegerField()
totalamount = models.FloatField()
installmentamount = models.FloatField()
status = models.CharField(max_length=1)
creator = models.CharField(max_length=20)
cretime = models.DateTimeField(default=datetime.now)
updator = models.CharField(max_length=20)
updtime = models.DateTimeField(default=datetime.now, blank = True)
查看
from django.shortcuts import render, redirect
from django.http import HttpResponse, HttpResponseRedirect
import datetime
from .models import kitty
from django.db import transaction
from django.contrib import messages
import re
def index(request):
return render(request, 'kitty/index.html')
def kitty_save(request):
if request.method == 'POST':
company = "1"
code1 = request.POST['code']
type1 = request.POST['type']
name = request.POST['name']
startdate = request.POST['startdate']
durinmonths = request.POST['durinmonths']
enddate = request.POST['enddate']
totalmembers = request.POST['totalmembers']
totalamount = request.POST['totalamount']
installmentamount = request.POST['installmentamount']
print(startdate)
status = "A"
creator = request.user
kitty1 = kitty(company=company, code=code1, type=type1,name=name, startdate=startdate, durinmonths=durinmonths,
enddate=enddate,totalmembers=totalmembers,totalamount=totalamount,installmentamount=installmentamount,
status=status, creator=creator)
kitty1.save()
transaction.commit()
messages.success(request, 'Kitty Added')
return HttpResponseRedirect(request.path_info)
else:
return render(request, 'kitty/kitty.html')
URL
from django.urls import path
from . import views
urlpatterns = [
path('',views.index,name='index'),
path('kitty',views.kitty_save,name='kitty')]
HTML
<form class="form-signin" action="{% url 'kitty' %}" method="POST">
{% csrf_token %}
<h1 class="h3 mb-3 font-weight-normal redc">Kitty Creation</h1>
<div class="mb-3">
<input type="text" name="code" id="code" class="form-control-sm center-block" placeholder="Kitty Code"
required autofocus >
</div>
<div class="mb-3">
<input type="text" name="name" id="name" class="form-control-sm center-block" placeholder="Name"
required autofocus>
</div>
<div class="mb-3">
<select class="custom-select center-block" name="type" id="type" required>
<option value="">Choose Type of Kitty...</option>
<option>Diamond</option>
<option>Gold</option>
</select>
<div class="invalid-feedback">
Please select a valid Existing Customer.
</div>
</div>
<input type="date" class="form-control-sm center-block" name="startdate" id="startdate"
placeholder="Start Date" required>
<div class="invalid-feedback">
Please enter Start Date.
</div>
答案 0 :(得分:1)
您需要调用字段类型-现在Django不会将startdate
用作字段,因为您将其设置为字段类,而不是字段类的实例。
将startdate = models.DateField
更改为startdate = models.DateField()
,运行./manage.py makemigrations
创建迁移以捕获更改并重试。