Python 我该如何给模特配外键?
我该如何给模特配外键? 现在models.py有如下用户和项目表Python 我该如何给模特配外键?,python,django,Python,Django,我该如何给模特配外键? 现在models.py有如下用户和项目表 from django.db import models # Create your models here. class User(models.Model): user_id = models.CharField(max_length=200) name_id = models.CharField(max_length=200) regist_date = models.DateTimeField(a
from django.db import models
# Create your models here.
class User(models.Model):
user_id = models.CharField(max_length=200)
name_id = models.CharField(max_length=200)
regist_date = models.DateTimeField(auto_now=True)
class Item(models.Model):
user_id = models.CharField(max_length=200)
name = models.CharField(max_length=200)
item_name = models.CharField(max_length=200)
price = models.CharField(max_length=200)
我想把user\u id和name\u id当作ForeignKey。user表是父表,Item是子表。我认为Item中的user\u id和name\u id应该像ForeignKey一样
class Item(models.Model):
user_id = models.ForeignKey()
name = models.ForeignKey()
但是,我应该如何连接这两个模型?用户是父项,项目是子项?我应该如何编写它?当然,您必须阅读 看起来像一个用户->多个项目。 它的ForeignKey,我们必须在用户模型中设置它
class Item(models.Model):
...
class User(models.Model):
...
item = models.ForeignKey(Item)
当然,你必须阅读 看起来像一个用户->多个项目。 它的ForeignKey,我们必须在用户模型中设置它
class Item(models.Model):
...
class User(models.Model):
...
item = models.ForeignKey(Item)
你可以用像
class Item(models.Model):
user = models.ForeignKey(User, related_name='items')
从项目访问用户\u id将被禁用
item.user.user_id
从用户处访问所有项目将被禁用
user.items.all()
你可以用像
class Item(models.Model):
user = models.ForeignKey(User, related_name='items')
从项目访问用户\u id将被禁用
item.user.user_id
从用户处访问所有项目将被禁用
user.items.all()
阅读网站上的文档是个好主意 对于您的问题,您可以将项目模型连接到用户模型,如下所示:
class Item(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
同样,阅读文档并明确您需要什么是一个好主意,例如删除
用户
对象时应该做什么(我的代码中的on_delete
部分)。在
对于您的问题,您可以将项目模型连接到用户模型,如下所示:
class Item(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
同样,阅读文档并弄清楚您到底需要什么是一个好主意,例如当一个
用户对象被删除时(我的代码中的on_delete
部分)。不写代码,只告诉逻辑您需要什么。不写代码,只告诉逻辑您需要什么。thx,您的评论。我写了类用户(models.Model):user_id=models.CharField(max_length=200)name_id=models.CharField(max_length=200)regist_date=models.datefield(auto_now=True)class Item(models.Model):user=models.ForeignKey(user,related_name='items')Item.user.user_id=models.CharField(max_length=200)Item.user.name=models.CharField(最大长度=200)项目名称=型号。CharField(最大长度=200)价格=型号。CharField(max_length=200,但发生未解析的引用'item'错误。我理解您的答案是错误的吗?我如何解决此问题?您不需要在item中再次定义user_id属性。定义外键后,您可以通过执行item.user.user_id来获取用户id,其中item是item modelthx的实例,您的注释。我编写了user类(models.Model):user_id=models.CharField(max_length=200)name_id=models.CharField(max_length=200)regist_date=models.datefield(auto_now=True)class Item(models.Model):user=models.ForeignKey(user,related_name='items')Item.user.user_id=models.CharField(max_length=200)Item.user.name=models.CharField(最大长度=200)项目名称=型号。CharField(最大长度=200)价格=型号。CharField(max_length=200,但发生了未解析的引用“item”错误。我理解您的答案是错误的吗?我如何解决此问题?您不需要在item中再次定义user_id属性。定义外键后,您可以通过执行item.user.user_id来获取user_id,其中item是item模型的一个实例