gpt4 book ai didi

Django最终用户定义的字段,如何?

转载 作者:行者123 更新时间:2023-12-04 21:22:51 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:




9年前关闭。




Possible Duplicate:
Django dynamic model fields



早上好家伙!
情景如下。对于 Django 上的某些模型,我希望允许最终用户定义自己的字段。如果我能保留所有像 ORM 这样的 Django 很棒的功能,那就太好了,所以我仍然可以调用 field__gte 来搜索模型,仍然可以根据字段类型进行字段验证等。我想过两种方法这一点,我非常愿意接受新的建议。任何反馈将不胜感激。
  • 第一种方法是 Entity-Attribute-Value ( http://en.wikipedia.org/wiki/Entity%E2%80%93attribute%E2%80%93value_model ),django 已经有了一个应用程序。见 http://code.google.com/p/django-custom-field/
    我认为这将是一个不错的解决方案,但我失去了执行“mymodel.objects.filter(custom_field_x=something)”的能力。也许有一种方法可以重新获得 ORM,有什么想法吗?但是我听过很多关于这种方法的坏故事,我几乎不敢使用它。
  • 第二种方法是为每个用户创建一个数据库表(可能不超过 1000 个)。我读过django 在inspectdb 行中有一些东西,它实际上检查哪些字段存在并为您生成模型。这可能很有用,但我想也许我应该存储这个特定用户创建的字段,并以某种方式告诉 django,嘿,我们在这个模型中也有这个字段。这可能吗?我知道为每个用户使用不同的表通常是不好的,但是考虑到这种情况,你们如何评价这种方法,每个用户有一个表是否可以?

  • 需要自定义字段的模型是例如 Person。他们可能想要一个自定义字段来存储地址、血型或任何其他内容。

    提前谢谢了!周日愉快!

    非常相似: How to create user defined fields in Django - 但只谈论EAV,我想避免。我乐于接受新想法!

    最佳答案

    创建另一个模型来存储 user_defined_fields 怎么样?

        class UserDefinedField(models.Model):
    #..................
    user = models.ForeignKey(User)
    field_name = models.CharField(max_length=50)
    field_value = models.TextField()

    那么你可以做 UserDefinedField.objects.filter(field_name=some_name,field_value=somevalue)

    关于Django最终用户定义的字段,如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9051870/

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