gpt4 book ai didi

django - 在 Django 中硬编码数据的最佳方式

转载 作者:行者123 更新时间:2023-12-03 18:42:15 26 4
gpt4 key购买 nike

我有一个模型 News,它有一个指向另一个模型 Category 的外键。
类别是用 id、name、slug 和更多参数定义的。
我的类别将来永远不会改变,所以我想知道为什么要将它们存储在数据库中。
有没有办法在代码中对它们进行硬编码,比如使用选择或任何其他技术?

最佳答案

是的,choices : 将 ID+name 对存储为元组元组,并在另一个结构中存储任何其他参数。

CATEGORIES = (
(1, "Some category"),
(2, "Another category"),
)

CATEGORIES_PARAMS = {
1: {'slug': 'param_value'},
2: {'slug': 'another_value'},
}


class News(models.Model):
category = models.IntegerField("category", choices=CATEGORIES)
...
那么您可以通过以下方式使用其他参数:
CATEGORIES_PARAMS[news_instance.category]['slug']
或创建简单的包装类:
class Category(object):
def __init__(self, id):
self.id = id

def __getattr__(self, attr):
return CATEGORIES_PARAMS[self.id][attr]


cat = Category(news_instance.category)
print(cat.slug)

关于django - 在 Django 中硬编码数据的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11794118/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com