Python Django model.py models.ForeignKey()
我是Django框架的新手,对模型有点困惑 当model.py中有一个“类”时,我能把它理解为数据库中的“表”吗?例如,在下面的代码中,“Test”、“Contact”和“Tag”都是Django使用的数据库中的表吗Python Django model.py models.ForeignKey(),python,django,Python,Django,我是Django框架的新手,对模型有点困惑 当model.py中有一个“类”时,我能把它理解为数据库中的“表”吗?例如,在下面的代码中,“Test”、“Contact”和“Tag”都是Django使用的数据库中的表吗 from django.db import models class Test(models.Model): name = models.CharField(max_length=20) class Contact(models.Model): name
from django.db import models
class Test(models.Model):
name = models.CharField(max_length=20)
class Contact(models.Model):
name = models.CharField(max_length=200)
age = models.IntegerField(default=0)
email = models.EmailField()
def __unicode__(self):
return self.name
class Tag(models.Model):
contact = models.ForeignKey(Contact)
name = models.CharField(max_length=50)
def __unicode__(self):
return self.name
在类标记中,它使用的是模型。根据我的理解,外键(联系人)
应该建立在表的一个特定列上,但是为什么外键
直接建立在表上,即表联系人
非常感谢您的指导。外键将建立到具有主键的列中。
一个表中只有一个主键,
因此在django中,您只需给出表名。它将自动与具有主键的列一起建立
如果您在列中未提及任何主键,django models将自动添加一个id
列,该列的每个条目都具有唯一的非空整数值。
如果要显式为特定列指定外键,可以执行以下操作:
models.ForeignKey(TableName, db_column='Column_name')
只有扩展了models.Model
class,才能将类理解为数据库中的表
这将成为一个表:
class Order(models.Model):
pass
这不会成为一种模式:
class SomeHelper():
....
至于ForeignKey,它将自动绑定到另一个模型的主键。您可以通过在该外键中将设置为_field
来更改,但默认值为pk
:
models.ForeignKey(Bar, to_field='non-pk-field')
非常感谢你,它确实帮助了我@HenryJ很高兴能帮助你。@HenryJ哦,听起来很棒,欢迎来到stack overflow,随时分享你的疑问,并尝试为其他人提供答案。谢谢