- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的 Django Rest Framework api 中,我尝试向我的模型 UserPosts 添加一个属性,该属性返回所述帖子的所有喜欢。尽管我尽了最大努力,但我仍然遇到这个错误。下面是我的帖子模型:
class UserPosts(models.Model):
userProfile = models.ForeignKey(UserProfile, related_name="posts", on_delete=models.CASCADE)
image = models.ImageField()
caption = models.CharField(max_length=240)
@property
def get_likes(self):
from liked.models import Like
return Like(post=self)
这是我喜欢的模型:
class Like(models.Model):
user = models.OneToOneField(UserProfile, on_delete=models.CASCADE,)
post = models.ForeignKey(UserPosts, on_delete=models.CASCADE)
liked_at = models.DateTimeField()
最后是后序列化器:
class postSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = models.UserPosts
fields = ('userProfile', 'image', 'caption', 'likes')
谢谢。
最佳答案
你至少有三种方法。首先,正如 @WillemVanOnsem 所说,通过 many_to_one将 likes
更改为 like_set
class postSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = models.UserPosts
fields = ('userProfile', 'image', 'caption', 'like_set')
# ^^^^^
第二次将模型的属性重命名为 likes
并修复其中的查询集
class UserPosts(models.Model):
userProfile = models.ForeignKey(UserProfile, related_name="posts", on_delete=models.CASCADE)
image = models.ImageField()
caption = models.CharField(max_length=240)
@property
def likes(self):
# ^^^^^
from liked.models import Like
return Like.objects.filter(post=self).values() or []
# solution you try ^^^^^^^
return self.like_set.values() or []
# more django way
第三,对我来说最简单、最优雅的方法是删除 get_likes
并添加 related_name到 post
ForeignKey
:
class Like(models.Model):
user = models.OneToOneField(UserProfile, on_delete=models.CASCADE,)
post = models.ForeignKey(UserPosts, related_name='likes', on_delete=models.CASCADE)
# ^^^^^^^^^^^
liked_at = models.DateTimeField()
关于Django休息框架: field name 'likes' is not valid for model 'userPost' improperlyConfigured,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50685103/
我正在尝试为 django (1.7) 项目运行一些睾丸。 在项目目录下创建了一个test_models.py目录/tests/ 关于运行测试 >> python tests/test_models.
我正在尝试为 django (1.7) 项目运行一些睾丸。 在项目目录下创建了一个test_models.py目录/tests/ 关于运行测试 >> python tests/test_models.
我正在使用 Pycharm 4 启动一个新的 Django 项目。我已经定义了各种模型,如果我运行这样的测试, from django.test import TestCase from models
这是错误信息: django.core.exceptions.ImproperlyConfigured: The included URLconf '' does not appear to have
自从我学习 Django 以来,我就在 virtualenv 中使用 pip 跟踪了 Django 的安装。当 Django Book 告诉我在 Python shell 中输入这个时, from d
我以前遇到过这个问题,但我设法找到了引用的循环导入。我再次面对它,但我找不到问题。 我的项目名称是“sare”,我的 sare/urls.py 如下所示: from django.contrib im
我正在尝试使用 Pycharm 社区版来改进我的 Django 应用程序中的代码,但我无法运行我想要的所有 Django 代码。我不断收到此回溯... Traceback (most recent c
执行以下命令时出现以下错误 from django.contrib.sessions.models import Session session = Session.objects.get(pk=se
我正在 Heroku 上设置我的 Django 项目。我一直在关注文档,但是当我 foreman start 时,我收到一个我不太明白的错误。我已经设置了我的引擎文件,但它似乎并不想工作。 完整回溯:
在ubuntu ec2节点上安装redis和django后,基于http://michal.karzynski.pl/blog/2013/07/14/using-redis-as-django-ses
我最近搬到了另一台机器上,不得不再次从 subversion 中检查我的项目,但我很确定这台计算机有 Django 1.8,而项目期待 1.7。 我尝试将我的数据库与代码同步以创建必要的表,但出现
我尝试与 peewee 建立 MySQL 连接,并按照他们网站上的教程进行操作: peewee quickstart 所以我的代码如下: from peewee import * db = MySQL
在尝试运行 ./manage.py runserver 或 shell 或任何其他与此相关的命令时,我收到错误:您必须定义“默认”数据库。 我在 virtualenv 中运行它,settings.py
我在我的虚拟机上安装了 Python Social Auth 并尝试运行 makemigrations 并收到此错误: Traceback (most recent call last): Fil
我按照 quickstart guide 中的说明安装和配置了django-admin-tools 的。这些是 settings.py 行: # INSTALLED APPS 'admin_tools
我正在为我的 Django 应用程序编写一个中间件,我从 request.session 获取一个变量,然后必须将它插入到 redis 排序集中。相当直接。 即 import os #os.envir
我的应用程序昨晚运行正常,不知道为什么今天早上就不能运行了。我认为我所做的只是创建一个名为 django 的应用程序来存储我的模型、测试和 View 。 出现此错误,在 OS X 上使用 Heroku
我正在尝试在 heroku 上运行 geodjango 应用程序,我添加了一个构建包以使 gdal 可用 https://github.com/cyberdelia/heroku-geo-buildp
我收到错误 CreateView 缺少 QuerySet。定义 CreateView.model、CreateView.queryset 或覆盖 CreateView.get_queryset()。
我正在尝试使用以下命令运行计划任务: celery -A Htweetprod2 beat 根据 Celery 4.0 文档启动计划任务,此命令应该有效,但我收到此错误: C:\Users\hisg3
我是一名优秀的程序员,十分优秀!