美好的一天,
使用如下例所示的ManyToManyField会导致django自动创建一个名为country_region的模型,其中包含fields_id和region_id字段,这非常酷。但是,如果region_country数据库表(超出此线程范围的原因)具有除country_id和region_id之外的字段名称,该怎么办?
Django根据相关表的模型名称在多对多表中生成字段名称,因此我发现实现此目的的唯一方法是更改两个模型名称。但这迫使我拥有我不想要的型号名称!如何告诉django在自动多对多模型中使用哪些字段名称?
我尝试使用ManyToManyField的through = keyword参数显式指定多对多模型,这样可行,但是基于Region Model的表单不允许保存...
任何建议都非常感谢。
谢谢, 兰德尔
class Country(models.Model):
country_id = models.AutoField(primary_key=True)
country_name = models.CharField(max_length=200)
class Meta:
managed = False
db_table = 'country'
def __unicode__(self):
return '%s' % (self.country_name)
class Region(models.Model):
region_id = models.AutoField(primary_key=True)
region_name = models.CharField(max_length=200)
region = models.ManyToManyField(Country, db_table='region_country')
class Meta:
managed = False
db_table = 'region'