我有一个Django模型,我需要保持一个可调用的(在这种情况下是对另一个模型的引用)来存储它以及稍后应该应用于模型的一些“条件”。
我的方法是这样的:
MODEL_CHOICES = (
(django.contrib.auth.models.User, 'User'),
[some more]
)
class Model:
chosen_model = models.IntegerField(choices=MODEL_CHOICES)
conditions = models.TextField()
条件看起来像这样:
{'status': 1, [some other]}
但显然
django.contrib.auth.models.User不是有效的整数。
我尝试实现的目标如下: 呼叫
chosen_model.objects.filter(**conditions)
在一个视图中。 这甚至可能吗?如果是,我需要什么样的字段来存储对模型的引用?
非常感谢!
答案 0 :(得分:2)
看起来您可能需要content type
的外键答案 1 :(得分:2)
我建议你在这里使用ContentType模型。
from django.contrib.contenttypes.models import ContentType
class YourModel:
chosen_model = models.ForeignKey(ContentType)
conditions = models.TextField()