我讀過Django中的表名可以使用Meta Options來定製。我想知道如何使用db_table選項來繼續使用應用程序名稱,但稍微修改模型名稱而不用硬編碼應用程序名稱。在Django中更改表名
例如,從Django教程中,應用程序名稱爲「民意調查」,型號名稱爲「民意調查」。可以說我希望表格被稱爲「polls_mypoll」而不是「polls_poll」。以下是我嘗試過,但在外部類不能被訪問(沒有規定投票)
class Poll(models.Model):
question = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
class Meta:
db_table = "%s_%s" % (Poll._meta.app_label, "mypoll")
同樣,如果我想明確定義db_table僅僅是默認polls_poll什麼?我知道我可以完全拋棄Meta類,並使用默認名稱,但如果我想明確說明它,該怎麼辦?
class Poll(models.Model):
question = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
class Meta:
db_table = "%s_%s" % (Poll._meta.app_label, Poll._meta.model_name)
這不起作用,因爲Poll沒有在Meta中定義。
這不是說民意調查應該被宣佈_內容_ Meta可以被訪問;它在Meta解析的時候沒有被完全解析。 – XORcist