Python 我该如何给模特配外键?

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

我该如何给模特配外键? 现在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(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模型的一个实例