Django 过滤外键字段

2024-01-18

简洁版本:

我有一个用于食谱的 Django 应用程序,并且想要过滤要发送到我的视图中的模板的数据。我基本上希望特定用户添加的所有收据都作为上下文发送。以下过滤返回错误消息以 10 为基数的 int() 的文字无效:我的用户名.

recipes = Recipe.objects.filter(added_by = uname)

变量uname是从模板传递的。另一方面,过滤请求.用户工作正常,但不是我想要的。

recipes = Recipe.objects.filter(added_by = request.user)

Details:

我的模型给出(相关字段)为:

class Recipe (models.Model):
    ...
    ...
    added_by = models.ForeignKey(User)

Where User是现有的 Django 用户。当我在模板中调用 {{recipe.added_by }} 时,我得到了想要的用户名。该用户名将传递到视图href="/profile/{{recipe.added_by}}",其中视图如下所示:

def profile(request, uname):

    print uname #Correct username printed
    print request.user #Logged in user (not relevant, as userprofile should be visible for all)

    recipes = Recipe.objects.filter(added_by = uname) #Does not work. Why?
    #recipes = Recipe.objects.filter(added_by = request.user)

    form = CommentForm(request.POST)

    context = {
        'uname': uname,
        'recipes': recipes,
        'form': form,
    }
    return render(request, '*app_name*/profile.html', context)

不确定我错过了什么,但据我所知,这似乎与以下事实有关:added_by有一个用户的外键。我还尝试将过滤器参数更改为食谱__added_by__added_by = uname根据[1],但 Django 随后返回了一个错误,指出“无法将关键字‘recipe’解析为字段”,这似乎是显而易见的。我的网址是:

url(r'^profile/([a-zA-Z0-9]+)/$', 'profile', name='*app_name*-profile'),

感谢您的任何回复。抱歉,如果这应该是显而易见的。

[1] Django 模型通过外键过滤 https://stackoverflow.com/questions/11508744/django-models-filter-by-foreignkey


你可以尝试像:

 recipes = Recipe.objects.filter(added_by__username = uname)

And request.user适合Recipe.objects.filter(added_by = request.user)因为request.user是一个对象。细节:https://docs.djangoproject.com/en/dev/topics/db/queries/#lookups-that-span-relationships https://docs.djangoproject.com/en/dev/topics/db/queries/#lookups-that-span-relationships

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django 过滤外键字段 的相关文章

随机推荐

  • 在 Android 中使用谷歌地图查找最近的餐厅、咖啡店和杂货店

    我正在 android sdk 中工作并使用谷歌地图 api 我想知道是否有任何方法可以从用户当前位置找到最近的餐厅或咖啡店或杂货店 有许多应用程序可用于此目的 但我想编写自己的应用程序以用于学习目的 这可能有帮助 不知道它是否适用于and
  • 处理 SOAP 响应

    我正在尝试处理来自 First Data 的全球网关的 SOAP 响应 我以前使用过 SoapClient 但没有 wsdl 并且该公司表示他们不提供 wsdl 我尝试了各种其他方法 例如基于此处和 PHP 手册中找到的示例的 Simple
  • 在Python中处理多个相同类型的异常并恢复执行

    看来 一旦您在 Python 中引发了用户定义的异常 就无法恢复测试的执行 但在我的场景中 我想检查不同输入值发生的错误 但当前的实现仅限于继续对不同输入向量进行错误检查 然而 在对我的问题提出某种复杂的解决方案之前 我想我应该询问专家 看
  • Robolectric 2.4 创建活动时 NoSuchMethodError 无法转换为 RuntimeException

    我开始在 Android Studio 中使用 Robolectric 起初我想使用 hamcrest 创建一个简单的测试 如下所示 RunWith CustomTestRunner class Config emulateSdk 18 p
  • 如何使WCF命名管道地址等于WinApi地址?

    我注意到WCF的命名管道地址 net pipe localhost mynamedpipe 和 Windows API pipe mynamedpipe 不要碰撞 这是为什么 我怎样才能让它们指向同一个管道 没有记录的方法可以做到这一点 经
  • 字典的匿名集合初始值设定项

    是否可以隐式声明 nextDictionary
  • 如何在 TensorFlow 中打印 Tensor 对象的值?

    我一直在使用 TensorFlow 中矩阵乘法的介绍性示例 matrix1 tf constant 3 3 matrix2 tf constant 2 2 product tf matmul matrix1 matrix2 当我打印产品时
  • 正确 Dafny 方法的 Z3 模型

    对于正确的方法 Z3能否找到该方法验证条件的模型 我原以为不会 但这里有一个例子 该方法是正确的 但验证发现了一个模型 这是 Dafny 1 9 7 的情况 Malte 所说的是正确的 我发现它也得到了很好的解释 Dafny 是健全的 因为
  • 图像属性的值 (C#)

    我正在尝试解决更改 Bitmap 对象的 ImageDescription 值的问题 添加文件的描述 搜索了相关主题 没有找到解决方案 My code public Bitmap ImageWithComment Bitmap image
  • 为什么我的 Cassandra 更新不起作用?

    我有以下 Cassandra 表 create table start stop id text start text end text price double PRIMARY KEY id start 我做了这样的插入 insert i
  • 在nodejs中获取url的响应(express/http)

    我试图在nodejs 中获取两个URL 的响应 但是http request 有问题 这是我到目前为止所拥有的 var url https www google com pretend this exists xml var opt hos
  • 样式组件中的CSS' calc() [重复]

    这个问题在这里已经有答案了 尝试这个 const styledDiv styled div props gt props takeViewportHeight min height calc 100vh 16px 它不起作用 我是否遗漏了样
  • 警告:mysql_query(): 3 不是有效的 MySQL-Link 资源

    我遇到了这个奇怪的错误 但我不知道它来自哪里 Warning mysql query 3 is not a valid MySQL Link resource in 3号怎么了 我不明白 有没有人自己经历过这个错误 PHP 使用资源作为特殊
  • 如何在 Android 模拟器中安装 APK 文件?

    我终于成功混淆了我的 Android 应用程序 现在我想通过安装来测试它APK http en wikipedia org wiki APK 28file format 29文件并在模拟器上运行 如何在 Android 模拟器上安装 APK
  • 无法在 macOS High Sierra 上构建和安装 Valgrind

    我无法在 macOS High Sierra 上安装 Valgrind 无法通过brew 我尝试过3 10 https github com msgpack msgpack c issues 525 After make install 我
  • R语言变量冲突

    我有一个 R 脚本 它采用 R 的其他脚本并以这种方式操作它们 并且还执行它们的代码 我的脚本使用一些变量 显然 当其他脚本使用公共变量名时 我会陷入混乱 我希望我可以像在胶囊中一样执行其他脚本 这样重合的变量就不会互相影响 我一直在阅读有
  • 将冷却/计时器添加到 on_message [Discord.py]

    我最近开始用 Python 制作一个 Discord 机器人 用它测试 Python 的基础 并自己创建了一个带有多个命令的功能机器人 为了扩大其用途 我添加了一个级别 XP 系统 到目前为止该系统正在运行 bot event async
  • Nexus 7 上不显示菜单按钮

    所以我很长时间都面临这个问题 我的 Nexus 4 和 Nexus 7 都运行 Android 4 3 并且我有 targetSdkVersion 11 的应用程序 我使用 11 因为任何低于 11 的目标 sdk 都不支持我的多点触控 问
  • IE 7 和 8 中的 CSS 倾斜转换

    我有菱形样式的菜单 它使用以下代码 它在 Chrome firefox ie9 等中运行良好 但我现在需要在 IE 7 和 8 中运行 有没有办法在这些旧版浏览器上执行此操作 http jsfiddle net C7e7U http jsf
  • Django 过滤外键字段

    简洁版本 我有一个用于食谱的 Django 应用程序 并且想要过滤要发送到我的视图中的模板的数据 我基本上希望特定用户添加的所有收据都作为上下文发送 以下过滤返回错误消息以 10 为基数的 int 的文字无效 我的用户名 recipes R