<强> django外键使用一对一强>
因为django中处于安全和方便将数据库中的表封装成模型,所以很多sql原生的功能无法使用,比如左连接,但是我们可以使用外键(foreignkey)来满足表表直接的关系。
<强>设置模型强>
#在模型。py中添加 #人模型有两个外键,学校和省 # 类省(models.Model): name=模型。CharField(“省份”,max_length=10) 帖子=模型。CharField(“邮编”,max_length=10) def __str__(自我):#在Python2中用__unicode__替换__str__ 返回self.name #类School_Type (models.Model): # school_type=models.CharField(“学校类别”) 类学校(models.Model): id=模型。IntegerField(“学校编号’,primary_key=True) name=模型。CharField(“学校名称,max_length=200) 地址=模型。CharField(“学校地址”,max_length=200) def __str__(自我):#在Python2中用__unicode__替换__str__ 返回self.name 类人(models.Model): name=模型。CharField(“姓名”,max_length=50) 年龄=models.IntegerField('年龄”) 地址=模型。CharField(“地址”,max_length=100) 电子邮件=models.EmailField(“电子邮件”) 学校=models.ForeignKey(学校,> #因为形式的字段跟模型的字段相同,所以我们直接使用ModelForm 类PersonForm (ModelForm): 类元: 模型=人 字段=' __all__ ' >之前<>强保存强>
的观点。py中的视图,可以直接使用form.save()来保存形式 def人(要求): 如果request.POST: 形式=PersonForm (request.POST) 如果form.is_valid (): p=form.save () 返回HttpResponse(请求,“成功”) 其他: 返回HttpResponse(请求,“失败”) 其他: 形式=PersonForm () person_list=Person.objects.all () # school_list=person_list.School_set.all () 返回渲染(请求,”的人。html的,当地人()) >之前<强>模版person.html 强>
可以在模版中使用的人。外键字段。外键表属性来显示数据,比如person.school.province.post
{%延伸的基础。html ' %} {%块内容%} & lt;形式行动=啊!狈椒?癙OST”比; {% csrf_token %} {{形式}} & lt;输入类型=疤峤弧眝alue=' https://www.yisu.com/zixun/submit '/比; & lt;/form> {# #} {%人在person_list %} & lt; p>名称:{{person.name}};年龄:{{人。年龄}};学校:{{person.school}} {{person.province。帖子}} & lt;/p> {% endfor %} {{{school_list}} # #} {% endblock %} >之前以上这篇django foreignkey外键使用的例子相当于左加入就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
django foreignkey外键使用的例子相当于加入