我怎么知道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',)