2010-09-20 71 views
2

我正在爲小型Sales CRM應用程序創建警報/通知系統。 我有一個Lead_Contact模型,用於存儲客戶的姓名,地址等,以及一個Contact_Notifier模型,用於跟蹤客戶第一次聯繫的時間,最後一次聯繫以及何時我們要接下來聯繫他們。在Django模板中顯示反向多對多

僅供參考,這裏是該機型的相關片段:

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) 

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顯示所有我對next_contacted對象的視圖功能CRM應用的個人用戶,例如:

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 Project文檔,但我似乎無法讓反向關係顯示工作!下面是相關的模板代碼:

{% 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 %} 

我在做什麼錯?

回答

1

您有Lead_ContactContact_Notifier之間的三種關係,並且您已正確定義了所有這些屬性的related_name屬性。所以這些是你應該用來遵循你的反向關係的名字:

{% for item in issue.first_contact.all %} 
+0

謝謝!事實證明,問題不是我的for循環 - 嵌套在{{issue.phone_2}}中,導致模板無法正常工作。我想有些事情只是需要通過錯誤來學習:/ – DonnyBrook 2010-09-22 18:41:44