如何从其他模型中引入信息?
我有两个型号Article,和ArticleBody
包含主要信息的文章和包含身体和图像信息循环的ArticleBody
class Article(models.Model):
author = models.ForeignKey(User)
title = models.CharField(max_length=100)
excerpt = models.CharField(max_length=140, null=True, blank=True, help_text='A description no longer than 140 characters that explains what the article is about, important for SEO')
category = models.ManyToManyField(Category)
date_published = models.DateTimeField()
slug = models.SlugField(null=True)
status = models.CharField(choices=STATUS, max_length=2, default='DR')
tags = TagField(default='', null=True, blank=True, help_text='Just add a comma between the tags i.e. "My very important name, Hunting, Scope, Rifle"')
source_name = models.CharField(default='', blank=True, null=True, help_text='Outdoor Magazine', max_length=100)
source_url = …Run Code Online (Sandbox Code Playgroud) 我正在使用tastypie而我遇到了一个问题.
我的问题:
用户可以发布消息,如果其他用户订阅了该用户,他们可以在其主页上看到这些消息.它完全像推特用户的推文和关注者看他们的推文.
我有一个公共api所有消息.
我可以使用过滤特定的用户消息?userid=1
解决问题的方法
很糟糕:我可以使用过滤多个用户的消息(从而解决问题)
?userid__in=1&userid__=5&...
但这不是一个好方法,因为网址长度将增加到可能不允许的数量.(2000个字符)
有没有更好的方法呢?
有没有一种方法,我可以用request.user在查询集做了加入?
或者我应该使用某种高级过滤?
谢谢!
我有一个类似的coce:
def override_urls(self):
return [
url(r"^(?P<resource_name>%s)/(?P<slug>[\w\d_.-]+)/$" % self._meta.resource_name, self.wrap_view('dispatch_detail'), name="api_dispatch_detail"),
]
Run Code Online (Sandbox Code Playgroud)
这会生成如下URL:
/api/v1/nodes/<slug>/
Run Code Online (Sandbox Code Playgroud)
一切都很好,除了self.get_resource_uri(bundle)返回/api/v1/nodes/<id>/,我无法有效地比较当前的URL和资源URI.
我究竟做错了什么?
我在这里实现了建议的解决方案:https: //github.com/ninuxorg/nodeshot/blob/refactoring/nodeshot/core/base/resources.py
欢迎任何其他改进反馈.
我正在使用带有django的backbone.js,我想在我的应用程序的初始请求之后立即/获取当前登录用户.
我确实有一个UserResource设置,所以我可以打电话api,api/v1/user/id但这意味着我必须知道id我正在寻找哪些我不.在传统的django请求视图中,我将拥有该request.user对象.这也是我在客户端可以使用的,如果不是,我怎么能打电话来获取request.user?
编辑:
由于我使用Django的传统身份验证并在授权用户之后,骨干从那里开始.我可以在我的base.html文件中创建一个变量来存储当前登录用户的唯一ID,如下所示:
var user = {{user}}; // which shows the username
Run Code Online (Sandbox Code Playgroud)
这有什么风险吗?