簡體   English   中英

如何在 Django 型號中使用 arrays?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM