我正在为小型销售 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 %}
我究竟做错了什么?