0 0

django,models怎么把两个字段设成primary key?5

class Times(models.Model):    
    number=models.ForeignKey(Number)
    ID=models.ForeignKey(Station)
    time=models.DateTimeField()
    
    def __unicode__(self):
        return '%s,%d'%(self.number,self.ID)

我想把number和ID设成primary key怎么操作?

问题补充:
jimmykuu 写道
试一下这样:
class Times(models.Model):    
    number=models.ForeignKey(Number)
    ID=models.ForeignKey(Station)
    time=models.DateTimeField()
    
    class Meta:
        unique_together = ('number', 'ID')
    
    primary = ('number', 'ID')
    
    def __unicode__(self):
        return '%s,%d'%(self.number,self.ID)

这样要增加一个primary key字段 id
2010年9月25日 16:27

2个答案 按时间排序 按投票排序

0 0

采纳的答案

我处理时不会用到两个字段做联合主键,用默认生成的一个自增字段id作为主健。
多一个字段又不会增加什么麻烦,顶多不用它就行了。

class Times(models.Model):      
    number=models.ForeignKey(Number)  
    station=models.ForeignKey(Station)  
    time=models.DateTimeField()

2010年9月27日 13:09
0 0

试一下这样:

class Times(models.Model):    
    number=models.ForeignKey(Number)
    ID=models.ForeignKey(Station)
    time=models.DateTimeField()
    
    class Meta:
        unique_together = ('number', 'ID')
    
    primary = ('number', 'ID')
    
    def __unicode__(self):
        return '%s,%d'%(self.number,self.ID)

2010年9月26日 14:20

相关推荐

    django models里数据表插入数据id自增操作

    当你在Model中定义一个字段并指定其类型为`AutoField`,Django会默认将其设置为主键(`primary_key=True`),并且在每次新记录保存时自动递增这个ID。 在描述中提到的问题是,原本的代码使用了`IntegerField`并手动...

    Django自定义列表 models字段显示方式

    id = models.AutoField(primary_key=True,verbose_name ='编号') title = models.CharField(max_length=100,verbose_name ='标题') content = models.CharField(max_length=20000,verbose_name ='正文') create_...

    Django官方文档中文翻译(models部分)

    3. 主键(Primary Key):每个模型都需要一个主键,通常由`id`字段自动处理,它是一个自增的整数。 4. 嵌套模型:模型可以嵌套在其他模型中,实现一对多或一对一的关系。例如,`UserProfile`模型可以作为`User`模型...

    Django ORM 常用字段与不常用字段汇总

    在Django ORM中,模型(Models)通过类来映射数据库中的表,字段(Fields)则代表了表中的列。本篇文章将详细介绍Django ORM中常用字段和不常用字段的汇总,包括但不限于字段的定义、使用场景、参数配置以及一些特殊...

    Django models.py应用实现过程详解

    本文将深入探讨Django `models.py`应用的实现过程,并介绍各种字段类型及其用途。 首先,让我们创建一个简单的`models.py`文件。在Django项目中,每个应用程序通常都有一个`models.py`文件,它包含应用程序的数据...

    Django中的AutoField字段使用

    `AutoField`的使用方法非常简单,一般在定义模型类时,只需要声明一个名为`id`的字段并将其类型设置为`AutoField`,同时指定`primary_key=True`。例如: ```python class TestModel(models.Model): id = models....

    对django中foreignkey的简单使用详解

    在Django框架中,`ForeignKey`是一个非常重要的字段类型,用于建立两个模型之间的关系,特别是“一对多”(one-to-many)的关系。在这个例子中,`Department`(部门)和`Main`(信息)之间的关系就是一个典型的“一...

    django foreignkey(外键)的实现

    首先,Django 提供了丰富的字段类型来定义模型属性,其中 FOREIGN KEY 在数据库层面是对两个表之间关系的一种约束,而 Django 中的 ForeignKey 类型字段则是在模型层面上实现这一功能。在 Django 的 models.py 文件...

    django 模型字段设置默认值代码

    applicationname = models.CharField(max_length=50,primary_key=True) ip = models.CharField(max_length=50) port = models.IntegerField(default=22) #设置默认值为22 path = models.CharField(max_length=50...

    Mysql数据库反向生成Django里面的models指令方式

    user = models.ForeignKey(Visitors, on_delete=models.CASCADE, primary_key=True) # ... ``` 这里,`user`字段代替了`user_id`,并且与`Visitors`模型建立了关联。`on_delete=models.CASCADE`指定当`Visitors`...

    django-pachyderm:特殊 PostgreSQL 数据类型的 Django 字段

    姜戈厚皮动物 一组用于 PostgreSQL 特殊数据类型的 Django 字段。JSON 直接处理dict对象。 不要手动序列化为字符... from pachyderm.fields import UUIDField class MyModel(models.Model): pk = UUIDField(primary_key

    Django 模型类(models.py)的定义详解

    - `primary_key`:指定字段作为主键。 - `unique`:确保字段值在整个表中都是唯一的。 - `verbose_name`:为字段提供更易读的名字。 #### 四、定义数据模型的扩展属性 可以通过内部类`Meta`给数据模型增加更多的元...

    django+mysql的使用示例

    Django的每个模型(`model`)类都映射到数据库中的一张表,模型中的字段(`fields`)则对应于表中的列。这种对象关系映射(ORM)机制简化了数据库操作,允许开发者使用Python代码定义数据结构。 2. **数据库操作...

    django自定义非主键自增字段类型详解(auto increment field)

    在这个例子中,我们添加了一个自定义的检查,确保每个模型只有一个自增字段,并且该字段要么是主键(primary key),要么设置为唯一键(unique=True)。 ```python def check(self, **kwargs): errors = super...

    django-1.3-cheetsheet

    - 示例:`models.AutoField(primary_key=True)` 11. **`unique`**:是否唯一。 - 示例:`models.CharField(max_length=100, unique=True)` 12. **`unique_for_date`**:对于某个日期字段,该字段是否唯一。 - ...

    在Django框架中运行Python应用全攻略

    "id" serial NOT NULL PRIMARY KEY, "name" varchar(30) NOT NULL, "address" varchar(50) NOT NULL, "city" varchar(60) NOT NULL, "state_province" varchar(30) NOT NULL, "country" varchar(50) NOT NULL,...

    python django model联合主键的例子

    在某些情况下,我们可能需要为模型设置联合主键(Composite Primary Key),即由两个或多个字段共同构成主键,以确保数据的唯一性。本篇文章将深入探讨如何在Django中创建联合主键,并通过一个具体的例子来说明。 ...

Global site tag (gtag.js) - Google Analytics