我有一個帳戶表,其中包含一個名為帳戶的模型中的帳號和帳戶名稱
如何創建查找,以便每當我在 django 模板中輸入帳號時,都會自動填充帳號名稱
我嘗試的模型是
class Account(models.Model):
account_number = models.IntegerField()
account_name = models.CharField(max_length=50)
bank_name = models.ForeignKey(Bank, on_delete=models.CASCADE)
status = models.CharField(max_length=50)
def __str__(self):
return account_name
def get_absolute_url(self):
return reverse_lazy('accounts')
class AccountLookup(models.Model):
account_number = models.ForeignKey(Account, on_delete=models.CASCADE):
account_name = models. ???????????
uj5u.com熱心網友回復:
如果您想要一些可以在模板中使用的東西,該模板將從 AccountLookup 物件開始呈現帳戶名稱,那么它的
{{accountlookup_instance.account_number.account_name}}
請注意,這將再次訪問資料庫,除非您select_related()在首先獲得 AccountLookup 物件的查詢集上使用。
Python 代碼同樣可以使用這個虛線路徑,但有同樣的警告。
您可能會將其視為能夠參考看起來像一個欄位(但不是)的簡化。在這種情況下,您將其定義為屬性
class AccountLookup(models.Model):
account_number = models.ForeignKey(Account, on_delete=models.CASCADE)
...
@property
def account_name(self):
return self.account_number.account_name
(如果您需要將一些標準格式應用于帳戶名稱以在這種情況下將其轉換為更易于閱讀的形式,則它會變得更加有用)。
順便說一句,稱它為 account_number 令人困惑。最好只命名一個 ForeignKey 欄位。account在這種情況下:通過 ForeignKey 鏈接到此物件的帳戶物件。是的,它在內部由account_id通常是整數(自動生成的主鍵)的 an 表示,但這是 Django 程式員通常不關心的低級細節。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/347621.html
標籤:姜戈 django-models django-views django-forms django-模板
上一篇:在django模板中顯示資料庫資料時我找不到我的錯誤
下一篇:如何將兩個模型應用于一個視圖?
