Python __str_uu返回非字符串(类型NoneType)django
我试图在person表中获取输入,但出现此错误。 我已经连接了这两个模型,我正在返回字符串来连接它。有人能告诉我解决方案吗?下面是我的代码 此代码来自models.pyPython __str_uu返回非字符串(类型NoneType)django,python,mysql,django,Python,Mysql,Django,我试图在person表中获取输入,但出现此错误。 我已经连接了这两个模型,我正在返回字符串来连接它。有人能告诉我解决方案吗?下面是我的代码 此代码来自models.py from django.db import models class Person(models.Model): PersonID=models.CharField(max_length=30,null=True) Lastname=models.CharField(max_length=30,null=Tru
from django.db import models
class Person(models.Model):
PersonID=models.CharField(max_length=30,null=True)
Lastname=models.CharField(max_length=30,null=True)
Middlename=models.CharField(max_length=30,null=True)
Firstname=models.CharField(max_length=30,null=True)
Initials=models.CharField(max_length=10,null=True)
Title=models.CharField(max_length=10,null=True)
Gender=models.CharField(max_length=10,null=True)
Birthdate=models.DateField(default=None,null=True)
def __str__(self):
return self.PersonID
class Function(models.Model):
FunctionCode=models.CharField(max_length=30,null=True)
FunctionName=models.CharField(max_length=30,null=True)
MinSalary=models.IntegerField(null=True)
MaxSalary=models.IntegerField(null=True)
DefaultBillingRate=models.CharField(max_length=30,null=True)
def __str__(self):
return self.FunctionCode
此代码来自表单
from django.forms import ModelForm
from .models import Person
class PersonForm(ModelForm):
class Meta:
model = Person
fields = '__all__'
此代码来自视图
from django.shortcuts import render
from .forms import Person
from .models import *
def createPerson(request):
form = Person()
context = {'form':form}
return render(request, 'create_person.html', context )
此代码来自person.html
{% extends 'main.html' %}
{% load static %}
{% block content %}
<form action="" method="POST">
{% csrf_token %}
{{form}}
<input type="submit" name="Submit">
</form>
{% endblock %}
{%extends'main.html%}
{%load static%}
{%block content%}
{%csrf_令牌%}
{{form}}
{%endblock%}
如您所见,您的函数code
可以为空。您的
\uuu str\uuu
方法应该只返回字符串,但是当FunctionCode
为空时,它将返回None
而不是string
您可以返回不可为空的字段,也可以这样做
def __str__(self):
if self.FunctionCode is not None:
return self.FunctionCode
return "Unknown"
在这两种模型中,str方法返回的字段可以为空,您必须建立一个条件 例如: 模型->人
def __str__(self):
if self.PersonID is not None:
return self.PersonID
return "Custom String"
模型->功能
def __str__(self):
if self.FunctionCode is not None:
return self.FunctionCode
return "Custom String"
如果字段可以是None(null=True),则\uuu str\uu
方法可以返回None。你应该防止这种情况:
def\uuuu str\uuuuuu(自):
返回self.field或“”
如果字段值不是None,则返回该字段的值,否则返回空字符串。这些字段上有
null=True
,因此在某些实例中,这些值是null
,因此\u str\u
返回None
。注意:您的所有字段都有null=True
??请研究一下如何设计一个好的数据库模式(通常会尝试避免空值),你能建议我在这里写什么来代替null=true PersonID=models.CharField(max_length=30,null=true)我在视图中得到的解决方案form=Person()应该是Personform()我在html页面上看到一个未知的句子,但我想输入personid、lastname、middlename的值。。那边