- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在 Django 中开发一个讨论应用程序,它包含主题、帖子、回复和投票。投票使用 Generic Foreign Keys and Content Types以确保用户只能对特定主题/帖子/回复投票一次。
投票模型如下所示:
VOTE_TYPE = (
(-1, 'DISLIKE'),
(1, 'LIKE'),
)
class Vote(models.Model):
user = models.ForeignKey(User)
content_type = models.ForeignKey(ContentType,
limit_choices_to={"model__in": ("Thread", "Reply", "Post")},
related_name="votes")
object_id = models.PositiveIntegerField()
content_object = generic.GenericForeignKey('content_type', 'object_id')
vote = models.IntegerField(choices=VOTE_TYPE)
objects = GetOrNoneManager()
class Meta():
unique_together = [('object_id', 'content_type', 'user')]
class VoteSerializer(serializers.ModelSerializer):
class Meta:
model = Vote
@api_view(['POST'])
def discussions_vote(request):
if not request.user.is_authenticated():
return Response(status=status.HTTP_404_NOT_FOUND)
data = request.DATA
if data['obj_type'] == 'thread':
content_type = ContentType.objects.get_for_model(Thread)
print content_type.id
info = {
'content_type': content_type.id,
'user': request.user.id,
'object_id': data['obj']['id']
}
vote = Vote.objects.get_or_none(**info)
info['vote'] = data['vote']
ser = VoteSerializer(vote, data=info)
if ser.is_valid():
print "Valid"
else:
pprint.pprint(ser.errors)
return Response()
{u'vote': -1,
u'obj_type': u'thread',
u'obj':
{
...
u'id': 7,
...
}
}
Model content type with pk 149 does not exist.
print content_type.id
最佳答案
问题可能是您在那里有一个通用外键,它可以链接到任何类型的模型实例,因此 REST 框架没有确定如何表示序列化数据的默认方式。
在此处查看有关序列化程序中 GFK 的文档,希望它可以帮助您入门... http://www.django-rest-framework.org/api-guide/relations#generic-relationships
如果您仍然发现它有问题,那么只需完全放弃使用序列化程序,只需在 View 中显式执行验证,并返回您想要用于表示的任何值的字典。
关于django - GenericForeignKey、ContentType 和 DjangoRestFramework,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22069806/
到目前为止我有 -> 序列化器: class UserSerializer(serializers.ModelSerializer): """Serializer to map the mod
更新:django-rest-framework 3.7中将此行为识别为错误并已解决。现在,序列化程序将根据服务器的时区一致地显示时间:https://github.com/tomchristie/d
使用 DRF+Ajax+bootstrap 构建一个不需要应用程序的网站是否值得,还是坚持使用普通的 django 模板语言甚至不需要 Ajax 更好?我想避免使用 Angular ,因为我不希望事情
我正在开发一个 API(使用 DjangoRestFramework),我希望用户能够加载其项目列表,但我只想从数据库加载几列(比如说 ID、标题、类别、假设他们访问的 URL 是 api/items
我在 Django Rest Framework 2 中有这些嵌套的序列化程序: class BookingSerializer(Serializer): reservation_histor
这是我的模型: class Post(models.Model): user = models.ForeignKey(User) post = models.CharField(max
我的模型是这样的: class Post(models.Model): user = models.ForeignKey(User) post = models.CharField(m
我想在 django 应用程序中使用 DjangoRestframework 但调用它时出现错误? 打电话时,我给我回复: Exception Type: AssertionError Excepti
基本上,我想从 ModelSerializer 的相关字段中过滤掉不事件的用户。我试过 Dynamically limiting queryset of related field以及以下内容: cl
我正在尝试使用 django rest_framework_jwt。我可以让它生成一个 token ,但是当我尝试将其在 header 中发送到 protected View 时,我得到“未提供身份验
我的包裹: djangorestframework==3.2.5 django-filter==0.11.0 djangorestframework-filters==0.5.0 我正在使用 djan
我正在使用默认的 User 模型,并且还使用 UserExtended 模型对其进行了扩展: class Country(models.Model): countryName = models
我正在尝试序列化多个查询集,但我注意到只有其中一个查询集被序列化。这是我目前正在尝试的方法。 class GetDetails(APIView): def get(self, reques
我发现有一个 PostgreSQL 的模型框架: from sqlalchemy import Column, Integer, String from sqlalchemy.orm import c
我这几天一直在看这个,我要拔掉我的头发,所以任何帮助都将不胜感激。 我有一个名为 package 的简单模型,它有一个 userFrom 和 userTo class Package(models.M
我拥有对 SQL 旧版数据库的读取访问权限。假设在数据库中我有两个表:Treatment 和 TreatmentType。在治疗表中,我有病人ID (int)、日期(文本)、治疗类型(int)。在Tr
我正在尝试在 Apache 中运行 Django 项目 (Mayan EDMS)。来自 Ubuntu 12.10、Apache 2.2.22、Python 2.7.3 和 Django(1、4、3、'
我今天遇到了一个非常奇怪的问题。 这是我的序列化器类。 class Connectivity(serializers.Serializer): device_type = serialize
本文为 djangorestframework-simplejwt 使用记录。(官方文档) 1. 安装 pip install djangorestframework
我正在 Django 中开发一个讨论应用程序,它包含主题、帖子、回复和投票。投票使用 Generic Foreign Keys and Content Types以确保用户只能对特定主题/帖子/回复投
我是一名优秀的程序员,十分优秀!