Django 一对一关系问题
我正在实现一个独立的Django 一对一关系问题,django,django-models,Django,Django Models,我正在实现一个独立的'like'类(不仅仅是作为问题类的一部分),以便以后能够创建通知类,包括新的like、follow和其他社交内容 class Question(models.Model): like = models.OneToOneField('Like',related_name='like_QUESTION',null=True, blank=True) class Like(models.Model): what_post_is_liked = models.On
'like'
类(不仅仅是作为问题类的一部分),以便以后能够创建通知类,包括新的like、follow和其他社交内容
class Question(models.Model):
like = models.OneToOneField('Like',related_name='like_QUESTION',null=True, blank=True)
class Like(models.Model):
what_post_is_liked = models.OneToOneField('Question', related_name='what_post_is_liked_LIKE')
who_liked = models.OneToOneField('UserProfile', related_name='who_liked_LIKE')
whom = models.OneToOneField('UserProfile', related_name='whom_LIKE')
如何通过Question
class的“Like”属性获取类Like的属性(“what\u post\u是什么样的”)?根据OneToOne关系的文档,我应该在'Like'
之后编写Like类的属性,就像这样e.Like。谁喜欢
questions = Question.objects.filter(whom=request.user.profile)
for e in questions:
print(e.like)
虽然“Like”对象存在,“e.Like”返回None,这意味着“Like”不会自动继承新创建的“Like”对象
like = Like(whom=a,who_liked=b,what_post_is_liked=c)
like.save()
我已经进入了一个整体。有人能解释一下它是如何工作的吗?如何使自动复制/可继承并通过类似的'Question'类获取'Like'属性?OneToOneField可能不是这里的用户所需要的。通过一对一的关系,每个问题
最多可以有一个类似的,因此您要寻找的是外键
,应该在您的同类模型中。所以我们有
class Question(models.Model):
marks = models.IntegerField() # whatever question related field
# there's not like here.
class Like(models.Model):
what_post_is_liked = models.ForeignKey('Question', related_name='what_post_is_liked_LIKE')
who_liked = models.OneToOneField('UserProfile', related_name='who_liked_LIKE')
whom = models.OneToOneField('UserProfile', related_name='whom_LIKE')
那你就可以了
questions = Question.objects.filter(like__whom=request.user.profile)
如果你想让你喜欢的对象能够链接到许多不同类型的对象,而不仅仅是问题,你就必须使用a,它的功能更强大(也更复杂)OneToOneField可能不适合这里的用户。通过一对一的关系,每个问题
最多可以有一个类似的,因此您要寻找的是外键
,应该在您的同类模型中。所以我们有
class Question(models.Model):
marks = models.IntegerField() # whatever question related field
# there's not like here.
class Like(models.Model):
what_post_is_liked = models.ForeignKey('Question', related_name='what_post_is_liked_LIKE')
who_liked = models.OneToOneField('UserProfile', related_name='who_liked_LIKE')
whom = models.OneToOneField('UserProfile', related_name='whom_LIKE')
那你就可以了
questions = Question.objects.filter(like__whom=request.user.profile)
如果你想让你喜欢的对象能够链接到许多不同类型的对象,而不仅仅是问题,你就必须使用a,它的功能更强大(也更复杂)@e4c5它是edited@e4c5我是editedok我有外键,如何处理从Question object中检索相关的类似对象信息?这是一个不同的问题,但答案是Question.Like_set.all()好的,我得到了外键,如何处理从Question object中检索相关的类似对象信息?这是一个不同的问题,但答案是Question.Like_set.all()