我应该如何给ForeignKey模型? 现在models.py有User& Item表,如
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_id& name_id视为Foreing key.User表是父表,Item是child one。我认为Item中的user_id和name_id应该像ForeignKey一样
class Item(models.Model):
user_id = models.ForeignKey()
name = models.ForeignKey()
但是,如何连接这两个模型的用户是父母和物品是孩子?我该怎么写呢?
答案 0 :(得分:1)
当然,您必须阅读that。
看起来像一个用户 - >很多物品。 它的ForeignKey,我们必须在用户模型中设置它。
class Item(models.Model):
...
class User(models.Model):
...
item = models.ForeignKey(Item)
答案 1 :(得分:1)
您可以使用类似
的内容class Item(models.Model):
user = models.ForeignKey(User, related_name='items')
从item访问user_id将是
item.user.user_id
访问用户的所有项目
user.items.all()
答案 2 :(得分:0)
一个用户可以拥有多个项目:。
class User(models.Model):
username = models.CharField(max_length=200)
regist_date = models.DateTimeField(auto_now=True)
class Item(models.Model):
user = models.ForeignKey(User,on_delete=models.CASCADE)
itemname = models.CharField(max_length=200)
itemprice = models.CharField(max_length=200)
如果有项目:
有关此项目所属用户的详细信息,请参阅:
username = item.user.username
userid = item.user.id
如果给出了Userid:
可以通过以下方式找到属于该用户的所有项目:
items = Item.objects.filter(user__id=givenuserid)
答案 3 :(得分:0)
阅读ForeignKey
field上的文档是个好主意。
至于您的问题,您可以将Item模型连接到User模型,如下所示:
class Item(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
同样,阅读文档并确定您需要什么是一个好主意,例如删除User
对象时的操作(我的代码中的on_delete
部分)。< / p>