我遇到的情况是,用户模型可以有“X”个需要添加的唯一字段。这些字段需要对其运行查询,因此我不能只向其中添加包含 JSON 字符串的字段。例如,一个用户可能如下所示:
class User(models.Model):
name = models.CharField()
age = models.IntegerField()
sex = models.CharField()
profession = models.CharField()
下一个可能是:
class User(models.Model):
name = models.CharField()
age = models.IntegerField()
sex = models.CharField()
badge_number = models.IntegerField()
正如我上面所说,这些唯一字段必须是可查询的。帮助!!
最佳答案
如果您的意思不是 Django/DB 意义上的唯一,您可以尝试使用 postgres JSONField
,一个存储 JSON 且可查询的字段。
文档中的示例代码:
from django.contrib.postgres.fields import JSONField
from django.db import models
class Dog(models.Model):
name = models.CharField(max_length=200)
data = JSONField()
def __str__(self):
return self.name
以及查询:
>>> Dog.objects.create(name='Rufus', data={
... 'breed': 'labrador',
... 'owner': {
... 'name': 'Bob',
... 'other_pets': [{
... 'name': 'Fishy',
... }],
... },
... })
>>> Dog.objects.create(name='Meg', data={'breed': 'collie', 'owner': None})
>>> Dog.objects.filter(data__breed='collie')
<QuerySet [<Dog: Meg>]>
关于python - 动态实例特定的 Django 字段创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52527932/