0

我正在尝试构建一种允许多个实体定期更新项目的关系。更准确地说,我想定义模型中使用的术语。

Lead => 这将是项目。

公司 => 将被允许投标该项目的承包商。在对项目进行投标/谈判时,他们必须定期更新潜在客户的状态字段。

Lead update => 用于保持更新的表。

但是当我尝试运行服务器时,我得到了这个错误

"companies.leadupdate: Reverse query name for field 'lead' clashes with m2m field 'Lead.leadupdate'. Add a related_name argument to the definition for 'lead'"

我决定根据 Django 网站https://docs.djangoproject.com/en/1.4/topics/db/models/上的示例走这条路线,这与我试图实现的目标相似。我也可能完全关闭:)

from django.db import models
class Company(models.Model):
    comp_name = models.CharField(max_length=200)
    comp_address = models.CharField(max_length=200)
    comp_email = models.CharField(max_length=200)
    comp_zip = models.IntegerField()
    comp_phone = models.IntegerField()
    comp_city = models.CharField(max_length=40)
    def __unicode__(self):
        return self.comp_name



class Leadsource(models.Model):
    assetname = models.CharField(max_length=100)
    def __unicode__(self):
        return self.assetname


class Lead(models.Model):

    numberofstations = models.IntegerField()
    comment = models.CharField(max_length=500)
    #company = models.ManyToManyField(Company)
    leadsource = models.ForeignKey(Leadsource)
    submissiondate = models.DateField('Submission Date')
    cname = models.CharField('Business Name', max_length=100)
    crep = models.CharField('Principle Contact', max_length=100)
    cemail = models.CharField(max_length=100)
    caddress = models.CharField(max_length=100)
    cnumber = models.CharField(max_length=100)
    leadupdate = models.ManyToManyField(Company,through='Leadupdate')

    def __unicode__(self):
        return u"%s %s %s" % (self.cname, self.crep, self.leadsource)


class Leadupdate(models.Model):
    updatedate = models.DateField()
    update = models.CharField(max_length=400)
    updatefrom = models.ForeignKey(Company)
    lead = models.ForeignKey(Lead)
    def __unicode__(self):
        return u" %s - %s " % (self.update, self.updatedate)
4

1 回答 1

0

就像错误所说的尝试将相关名称参数添加到 Lead 字段的定义中,例如:

lead = models.ForeignKey(Lead, related_name="lead_related")

这应该可以解决问题。

于 2012-08-31T06:49:19.030 回答