如何查看模型的自动生成主键,并像Django中的FK一样使用它



我怎么知道Django中的模型默认情况下有自动递增的id,但我想在Django管理中看到它,并接受这个id,以便将它放在其他模型中,如FK

class Customer(models.Model):
customer_id = #TO BE auto incremented PRIMARY KEY
user = models.OneToOneField(User, null=True, on_delete=models.CASCADE)
name = models.CharField(max_length=60)
def __str__(self):
return self.name
class Wallet(models.Model):
customer = models.ForeignKey(Customer, null=True, on_delete=models.CASCADE)
usd = models.FloatField(null=True)

您可以将AutoField[Django-doc]primary_key=True>[Django-doc]:一起使用

from django.conf import settings

class Customer(models.Model):
customer_id =AutoField(primary_key=True)
user = models.OneToOneField(
settings.AUTH_USER_MODEL, null=True, on_delete=models.CASCADE
)
name = models.CharField(max_length=60)
def __str__(self):
return self.name

class Wallet(models.Model):
customer = models.ForeignKey(Customer, on_delete=models.CASCADE)
usd = models.FloatField(null=True)

对于customer,它将创建一个名为customer_id的列,该列的主键为appname_customer表的主键。

在钱包的ModelAdmin中,您可以使用raw_id_fields属性[Django-doc]来指定主键:

class WalletAdmin(admin.ModelAdmin):
# …
raw_id_fields= ('customer',)

最新更新