複数のエンティティがプロジェクトを定期的に更新できるような関係を構築しようとしています。より正確に言うと、モデルで使用される用語を定義したいと思います。
リード=>これがプロジェクトになります。
会社=>プロジェクトへの入札を許可される請負業者。プロジェクトの入札/交渉中、リードのステータスフィールドを定期的に更新する必要があります。
リード更新=>更新を保持するために使用されるテーブル。
しかし、サーバーを実行しようとすると、このエラーが発生します
"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)