【发布时间】:2021-05-31 12:42:56
【问题描述】:
我正在尝试输入 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=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 %}
【问题讨论】:
-
您在这些字段上有
null=True,因此您有一些实例,其中这些值为null,因此__str__返回None。注意:您的所有字段也都有null=True??请研究一下如何设计一个好的数据库模式(通常会尽量避免空值) -
你能建议我在这里写什么而不是 null=true PersonID=models.CharField(max_length=30,null=True)
-
我得到了视图形式的解决方案 = Person() 应该是 Personform()