python - Django自动增量模型
问题描述
我设计的 Django 模型如下所示:
`
class User(models.Model):
id=models.AutoField(primary_key=True)
username=models.CharField(max_length=25,verbose_name="username")
name=models.CharField(max_length=20,default="noName",verbose_name="name")
password=models.CharField(max_length=20,verbose_name="password")
email=models.EmailField()
userCode=models.CharField(default=" ",max_length=100,verbose_name="User Code")
def __str__(self):
return self.username
class Meta:
ordering = ['-username']`
然后我在 view.py 中创建一个对象。虽然 id 是自动递增的,但 python 希望我定义一个 id。View.py 如下所示。
def register(request,id):
if request.method=='POST':
form = RegisterForm(request.POST)
if form.is_valid():
username = form.cleaned_data['username']
name=form.cleaned_data["name"]
password = form.cleaned_data["password"]
email=form.cleaned_data.get("email")
newUser = User(1,username,name,password,email)
newUser.save()
return redirect('mainPage')
else:
form=RegisterForm()
context = {
"form" : form,
"id":id
}
return render(request,"SignupLogin.html",context)
该行中的 User(1,username,name,password,email),1 是 id 号。当我删除它时,会抛出关于缺少变量 id 的错误。我怎样才能摆脱1?
解决方案
只需将您的参数引入model
init 函数即可。这可能会有所帮助:)
newUser = User(username=username, name=name, password=password, email=email)
如果你有nullable
字段(null=True)
,你必须在模型上描述它。
推荐阅读
- javascript - 如何正确地将信息放入数组?
- horizontal-scrolling - Waypoints - 触发此元素的功能,而不是其他具有相同类名的元素
- timer - 如何在 Arduino 上实现 ESP8266 的“Ticker”库?
- angular - 我试图在请求完成时通知观察者以停止显示加载微调器
- django - 使用 Django 编写验证器:如何显示验证错误消息?
- excel - 如何在使用 Apache POI 打开 Excel 时修复错误。错误提示“我们发现 xyz.xlsm 中的某些内容存在问题。您想要...”吗?
- android - 如何使用 sqlite 数据库表即时更新 recyclerview?
- azure - 在 Azure 数据工厂中使用 MSI 对 Azure Web 作业进行身份验证
- java - 如何使用可变参数模拟方法?
- javascript - Vue:延迟选项不适用于 v-popover