[英]How do I use arrays in Django models?
我有 ShortURL 的 model,其中包含一些數據。
我想在每個重定向(ip、時間等)上收集元數據,所以我需要添加某種類型的 ArrayField(它將包含字典)。 在文檔中沒有找到這樣的東西,我該怎么辦?
模型.py:
class ShortUrl(models.Model):
full_url = models.URLField()
time_created = models.DateTimeField(auto_now=True)
# visits = {}
# Field will contain many dictionaries like {'ip': '...', 'time': '...', 'meta': ...}
由於 Django 僅支持關系數據庫,這就是為什么您沒有找到要存儲的此類字段的原因。PostgresSQL 數據庫支持ArrayField
,我不建議這樣做,因為它僅適用於 PostgresSQL。 有關 ArrayField 的更多詳細信息在這里。
所以建議的方法是規范化關系。 您可以將元數據分離到不同的表中,這些表將與 ShortURL 表有ForeignKey
關系。
class Metadata(models.Model):
short_url = models.ForeignKey(ShortURL, ...)
ip = ...
time = ...
...
因此,現在您的每個Array
元素都將由一個Metadata
行表示。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.