如何在django模型中保存可调用对象?

时间:2012-03-13 16:00:25

标签: django django-models callable

我有一个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)

在一个视图中。 这甚至可能吗?如果是,我需要什么样的字段来存储对模型的引用?

非常感谢!

2 个答案:

答案 0 :(得分:2)

看起来您可能需要content type

的外键

答案 1 :(得分:2)

我建议你在这里使用ContentType模型。

from django.contrib.contenttypes.models import ContentType

class YourModel:
     chosen_model = models.ForeignKey(ContentType)
     conditions = models.TextField()