gpt4 book ai didi

python - 从 META 类动态创建 related_name

转载 作者:太空宇宙 更新时间:2023-11-03 12:39:01 26 4
gpt4 key购买 nike

我的大部分 Django 模型都使用相同的 User Mixin,因此我想为该字段动态创建 related_name

我希望它是 TestModel 变成 test_models 的类名,或者甚至是主模型元类中的一组名称。

我查看了 self__class__.__name__ 但这给了我 User 类的名称。

是否可以像下面那样做,如果可以,怎么做......

class User(models.Model):
user = models.ForeignKey(USER, related_name=META.related_name)

class Meta:
abstract = True


class TestModel(User):
title = models.CharField(max_length=80)

class Meta:
related_name = "test_model"

最佳答案

我认为处理它可能就足够了 documented here .

# myapp/models.py
class User(models.Model):
user = models.ForeignKey(
USER,
related_name="%(app_label)s_%(class)s_related"
)

class Meta:
abstract = True


class TestModel(User):
title = models.CharField(max_length=80)

这样相关名称将动态变为 myapp_testmodel_related。当然,您可以调整名称并简化模式,前提是名称不能在多个应用程序之间发生冲突。

关于python - 从 META 类动态创建 related_name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30579414/

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