我有一組django模型如下
class FirstCategory(models.Model):
first_category = models.CharField(max_length=200)
def __str__(self):
return self.first_category
class SecondCategory(models.Model):
first_category = models.ForeignKey(FirstCategory, on_delete=models.CASCADE)
second_category = models.CharField(max_length=200)
def __str__(self):
return self.second_category
class ThirdCategory(models.Model):
first_category = models.ForeignKey(FirstCategory, on_delete=models.CASCADE)
second_category = models.ForeignKey(SecondCategory, on_delete=models.CASCADE)
third_category = models.CharField(max_length=200)
def __str__(self):
return self.third_category
class FinalList(models.Model):
unique_number = models.BigIntegerField()
name = models.CharField(max_length=200)
first_category = models.ForeignKey(FirstCategory, on_delete=models.SET_NULL, null=True, db_column="first_category")
second_category = models.ForeignKey(SecondCategory, on_delete=models.SET_NULL, null=True, db_column="second_category")
third_category = models.ForeignKey(ThirdCategory, on_delete=models.SET_NULL, null=True, db_column="third_category")
def __str__(self):
return self.name
當我遷移模型并檢查FinalList表中欄位的資料型別時,我得到以下資訊
column_name | data_type
--------------------------- -------------------
third_category | bigint
first_category | bigint
second_category | bigint
unique_number | bigint
name | character varying
我已將第一、第二和第三類別指定為字符欄位。為什么要遷移為 BigInt?
我正在嘗試在我的表單中實作一個鏈式下拉選單。我正在關注SimpleBetterThanComplex教程
編輯 1:遷移檔案的內容
在遷移檔案中,我有以下內容
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
我自己沒有指定這一點。我認為 Django 將其創建為自動主欄位。這會影響 的資料型別ForeignKeys嗎?
uj5u.com熱心網友回復:
Django 本身在每個模型上創建一個主鍵,自動命名為id:https : //docs.djangoproject.com/en/3.2/topics/db/models/#automatic-primary-key-fields
當您創建 時ForeignKey,Django 會創建一個指向相關模型主鍵(在您的情況下為自動 id)的新欄位。您可以使用primary_key=True欄位中的引數指定另一個主鍵。
class FirstCategory(models.Model):
first_category = models.CharField(max_length=200, primary_key=True)
def __str__(self):
return self.first_category
此外,Django 提供了pk快捷方式屬性來訪問模型中的主鍵,無論它是自動指定的還是手動指定的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/371706.html
標籤:Python 姜戈 django 模型 django-forms
上一篇:django:自相關外鍵欄位的related_name不起作用|在模板中獲得相反方向的自參考
下一篇:根據用戶是否屬于專案團隊進行過濾
