在 Django 模板中显示反向多对多

2023-12-20

我正在为小型销售 CRM 应用程序创建警报/通知系统。 我有一个 Lead_Contact 模型,用于存储客户的姓名、地址等,以及一个 Contact_Notifier 模型,用于跟踪首次联系客户的时间、最后一次联系以及我们何时进行下一步联系他们。

作为参考,以下是模型的相关片段:

class Lead_Contact(models.Model):

    first_contacted = models.ManyToManyField('Contact_Notifier', related_name='first_contact', null=True,blank=True)
    last_contacted = models.ManyToManyField('Contact_Notifier', related_name='last_contact', null=True,blank=True)
    next_contacted = models.ManyToManyField('Contact_Notifier', related_name='next_contact', null=True,blank=True)

and

class Contact_Notifier(models.Model):
    WHEN_CHOICES = (
     ('F', 'First'),
     ('L', 'Last'),
     ('N', 'Next'),
    )

    when_contact = models.CharField(max_length=1, choices=WHEN_CHOICES)
    contact_date = models.DateField(blank = True, null=True)
    contact_time = models.TimeField(blank = True, null=True)
    contact_message = models.TextField(blank=True)
    is_finished = models.BooleanField(default=False)

我创建了一个视图函数,该函数本质上是过滤 Contact_Notifier,以便为 CRM 应用程序的各个用户显示我的所有 next_contacted 对象,如下所示:

def urgent_notifier(request, template_name='urgent_results.html'):
    error = ""

    selected_user = user_filter(request)
    results=Contact_Notifier.objects.filter( Q(user=selected_user) | Q(user="AU")).filter(when_contact = 'N').filter(contact_date__lte=datetime.date.today()) 
    return render_to_response(template_name, {'issues': results, 'error': error}) 

现在在我的模板中,我正在显示我的查询集,但当我尝试显示 Lead_Contact 模型中的字段时遇到问题;我已经阅读了 Django 书籍和 Django 项目文档,但我似乎无法使反向关系显示工作!相关模板代码如下:

{% if issues %} 
 {% for issue in issues %}
  <form action="/results/{{issue.id}}/normalize/" method="post">
   <input type="submit" value="remove" /><b>Contact Time:</b> {{issue.contact_date}} <b> at </b> {{issue.contact_time}} <b>via</b> {{issue.get_contact_type_display}} <br>
  <!-- Here is where my problems start  --> 
   {% for item in issue.lead_contact_set.all %}
    {{ item.salutation }} <a href="../results/{{issue.pk}}/"> {{ item.first_name }} {{ item.last_name }} </a> <b> Phone:</b> {{ item.phone_1 }} {{ issue.phone_2 }} <b>email:</b> {{item.email}} <br>
   {% endfor %}

  </form>
 {% endfor %}
{% endif %} 

我也尝试过使用这样的相关名称:

{% for item in issue.next_contact.all %}

我究竟做错了什么?


你们之间存在三种关系Lead_Contact and Contact_Notifier,并且您已经正确定义了related_name他们所有人的属性。因此,这些是您应该用来遵循反向关系的名称:

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

在 Django 模板中显示反向多对多 的相关文章

随机推荐

  • 根据条件打印列表中的元素

    我有一个列表 其中包含名字 姓氏和得分 list1 david carter 6 chris jenkins 0 john wells 5 ryan love 0 我只想打印出 0 分的名字 例如只打印出来 Chris Jenkins 0
  • java程序接受任何格式的日期作为输入并打印月份,

    java程序接受任何格式的日期作为输入并打印月份 是否可以 我尝试了以下方法 还有其他替代方法 想法吗 import java text import java util public class PrintMonth3 public st
  • jQuery UI:对话框按钮样式

    有没有一种简单的方法可以将 CSS 图标应用到 jQuery UI 模式对话框上的模式按钮 如果我包含 HTML 来显示带有按钮文本的图标 它会将 HTML 显示为文本而不是呈现代码 我猜我可以编写一些 jQuery 来查找按钮并用我想要的
  • PHP 从循环生成 Array()? [复制]

    这个问题在这里已经有答案了 我刚刚写了这篇文章 这是将数组添加到预先存在的数组的最有效方法吗 c 4 i 1 myarray array while i lt c array push myarray array key gt value
  • 如何从自定义按钮触发 Facebook Like 按钮?

    我创建了一个自定义的 Facebook Like 按钮 如何让我点击按钮时 会触发 Facebook 提供的点赞按钮 如下所示 根据脸书政策 https developers facebook com policy socialplugin
  • 设置变量时 jQuery .val() 不起作用

    如果我有这样的输入
  • HID 设备的 INF 文件 - 设置名称和图标

    我正在寻找为 HID 设备 具有自定义 VID PID 创建一个 inf 文件 我只想用我们的字符串替换我们设备的 HID 兼容设备 和 USB 输入设备 字符串 我知道这需要 Microsoft 签名 但是有一个很好的示例说明如何执行此操
  • 将 RSS feed 输出为 html?

    是否有任何免费的 php javascript 库可以帮助将 RSS feed 显示为 html 在我看来简单派 http simplepie org是最好的 RSS 解析器之一 这是一个例子 require once simplepie
  • 如果我将所有图像保留在drawable-hdpi 文件夹中会发生什么?

    我的所有图像都在drawable hdpi 文件夹中 我完成了所有屏幕尺寸的所有布局 但我忘记将图像放入drawable mdpi文件夹和drawable ldpi文件夹中 如果具有 mdpi 屏幕密度的手机要下载我的应用程序 它会只使用
  • 在不知道高度宽度的情况下用背景图像填充 SVG 路径

    我能够创建一个包含填充 SVG 路径的 SVG 图像 正如这个问题中已经提到的 使用背景图像填充 SVG 路径元素 https stackoverflow com questions 3796025 fill svg path elemen
  • 如何使用7z SDK压缩和解压文件

    根据这个链接如何使用 NET 创建 7 Zip 档案 https stackoverflow com questions 222030 how do i create 7 zip archives with net WOPR 告诉我们如何使
  • 为什么 :host 选择器只能在带有 platform.js 的 chrome 中工作?

    关于如何设计 Web 组件的样式有很多讨论 例如 http www html5rocks com en tutorials webcomponents shadowdom 201 http www html5rocks com en tut
  • 方案:何时使用 let、let* 和 letrec? [复制]

    这个问题在这里已经有答案了 let let 和 letrec 之间有什么区别 请给出详尽的解释和例子 你最好的选择是阅读R5RS 官方说明 http www schemers org Documents Standards R5RS HTM
  • 如何从app.config获取这个配置值?

    我的朋友有以下 app config 他想要获得的价值address 怎么做
  • 如何将 Ransack 搜索保存到数据库?

    我正在尝试将 Ransack 搜索保存到数据库中 我相信我应该能够存储params q 值 然后当我想调用搜索时将其附加到搜索 URL 我不知道如何保存params q 不过 值 Ransack 创建的 URL 是这样的 http site
  • 极限分片:每个用户一个 SQLite 数据库

    我正在开发一个介于电子邮件服务和社交网络之间的网络应用程序 我觉得它未来有潜力变得非常大 所以我担心可扩展性 我决定为每个活动用户创建一个单独的 SQLite 数据库 每个 分片 一个活动用户 而不是使用一个集中式 MySQL InnoDB
  • 如何使用log4j2删除旧日志

    仅供参考 我已经在网上搜索了很多文档 我使用的是storm 0 10 0 beta1 Storm中log4j2的配置文件是worker xml 现在 我尝试使用log4j2 我正在寻找删除旧日志的方法 但我找不到 部分配置如下
  • 在“for in”循环中访问迭代器

    根据我的理解 当运行如下代码时 for i in MyObject print i 我的对象 iter 函数运行 for 循环使用它返回的迭代器来运行循环 是否可以在循环中访问此迭代器对象 它是一个隐藏的局部变量 还是类似的东西 我想做以下
  • UITextView 加载时未滚动到顶部

    当我的文本未填充 UITextView 时 它会按预期滚动到顶部 当文本超出屏幕所能容纳的范围时 UITextView 会滚动到文本的中间 而不是顶部 以下是一些可能相关的详细信息 在 viewDidLoad 中在 UITextView 的
  • 在 Django 模板中显示反向多对多

    我正在为小型销售 CRM 应用程序创建警报 通知系统 我有一个 Lead Contact 模型 用于存储客户的姓名 地址等 以及一个 Contact Notifier 模型 用于跟踪首次联系客户的时间 最后一次联系以及我们何时进行下一步联系