Python Django和DB错误“;列';id';“指定两次”;

Python Django和DB错误“;列';id';“指定两次”;,python,mysql,django,Python,Mysql,Django,我是django的新手,在尝试保存映射时遇到了一些问题 from django.db import models # Create your models here. class Users(models.Model): user = models.CharField(max_length=45) password = models.CharField(max_length=125) env = models.CharField(max_leng

我是django的新手,在尝试保存映射时遇到了一些问题

from django.db import models

# Create your models here.
class Users(models.Model):
        user = models.CharField(max_length=45)
        password = models.CharField(max_length=125)
        env = models.CharField(max_length=10)
        class Meta:
                db_table = 'esp-users'
        def __unicode__(self):
                return unicode(self.user)
class Groups(models.Model):
        group_name = models.CharField(max_length=45)
        description = models.CharField(max_length=255)
        env = models.CharField(max_length=45)
        class Meta:
                db_table = 'esp-groups'
        def __unicode__(self):
                return unicode(self.group_name)
class Roles(models.Model):
        role_name = models.CharField(max_length=45)
        env = models.CharField(max_length=10)
        class Meta:
                db_table = 'esp-roles'
        def __unicode__(self):
                return unicode(self.role_name)
class Group_Map(models.Model):
        group_id = models.ForeignKey(Groups, db_column='id')
        user_id = models.ForeignKey(Users, db_column='id')
        class Meta:
                db_table='esp-group-map'
        def __unicode__(self):
                return unicode(self.group_id)
class Role_Map(models.Model):
        role_id = models.ForeignKey(Roles, db_column='id')
        group_id = models.ForeignKey(Groups, db_column='id')
        class Meta:
                db_table='esp-role-map'
        def __unicode__(self):
                return unicode(self.role_id)
谢谢你的帮助

Django v1.3、Python 2.4、Mysql 5.0.77

申请方式:邮寄 请求URL: Django版本:1.3 异常类型:DatabaseError 异常值:

(1110,“列'id'指定两次”)

经验教训:如果它是一个新的数据库,不需要自己制作表,只需运行python manage.py syncdb,它就能为您制作数据库,一切都很好。谢谢你的帮助

您不能这样做:

group_id = models.ForeignKey(Groups, db_column='id')
user_id = models.ForeignKey(Users, db_column='id')
您只需执行以下操作:

group_id = models.ForeignKey(Groups)
user_id = models.ForeignKey(Users)
Django将根据
用户
主键推断要使用的列

当您使用时,我建议您将
更改为
用户
更改为
用户
等等。您的代码将更加清晰,因为您将执行以下操作:

user = User()
而不是:

user = Users()

您正在为
组id
用户id
指定
db\u column='id'
。不能有两个同名的列。您可以删除此参数,让Django为您命名。

db\u column
指定要在定义的模型中使用的列名,而不是引用的列名。不需要为FKs指定列名,它是自动完成的

添加如何显式指定目标列可能会有所帮助我尝试这样做,但我收到一个错误,抱怨它找不到组id,因此我不得不使用db_列使其工作。Django是否为您生成了表?不,我生成了表,我不知道Django可以这样做。但是我得到了这个异常值:(1054,“字段列表”中的未知列“group\u id\u id”),如果您创建了表,那么您需要向DJANGO提供列名。您的用户模型主键是什么?DJANGO文档非常好。因此,在继续之前,您可能需要阅读一些关于模型(以及Django如何处理它们)的内容……不需要[SOLVED]前缀。用户可以通过问题旁边数字的颜色来查看您是否接受了答案。
group = models.ForeignKey(Groups, db_column='group_id')
user = models.ForeignKey(Users, db_column='user_id')