我希望创建一种新的Django模型字段类型,基本上是一个字符串列表。因此,在您的模型代码中,您将拥有以下内容:
models.py:
from django.db import models
class ListOfStringsField(???):
???
class myDjangoModelClass():
myName = models.CharField(max_length=64)
myFriends = ListOfStringsField() #
other.py:
myclass = myDjangoModelClass()
myclass.myName = "bob"
myclass.myFriends = ["me", "myself", "and I"]
myclass.save()
id = myclass.id
loadedmyclass = myDjangoModelClass.objects.filter(id__exact=id)
myFriendsList = loadedclass.myFriends
# myFriendsList is a list and should equal ["me", "myself", "and I"]
如果按照以下规定,你会如何编写此字段类型?
- 我们不想创建一个将所有字符串压缩在一起并用令牌分隔它们的字段,比如this。这是一种好的解决方案,在某些情况下非常有效,但我们希望保持字符串数据的规范化,以便除Django之外的工具可以查询数据。
- 该字段应自动创建任何需要存储字符串数据的辅助表。
- 辅助表最好只有每个唯一字符串的一个副本。这是可选的,但最好有。
查看Django代码,似乎我应该做类似于ForeignKey正在做的事情,但文档很少。
这引出了以下问题:
- 这能做到吗?
- 是否已经完成了(如果完成了,那在哪里)?
- Django有关于如何扩展和覆盖他们的模型类,特别是他们的关系类的文档吗?我没有看到太多关于他们代码这方面的文档,但是有this。
这来自于问题。