0

我有两张桌子(比如父母和孩子)。我希望父母和孩子使用外键相互链接。子表有两个字段,其中一个是“country_sig”。这个 country_sig 实际上是通过连接父表中名为'country''code' 的两个字段制成的。例如:如果 country 是 'IN' 并且 code 是 '15' 那么 country_sig 是IN.15

现在我希望在为父表创建 django 模型期间,它应该自动创建从“国家”和“代码”派生的这个字段 country_sig ,以便我可以将其引用到子表。

PS:由于父表非常大,我不想在从这两个字段派生的数据库中创建另一个字段,但我可以调整另一个表(子表)以将 country_sig 字段分为两列' 和 'code' 但这不起作用,因为 django 不支持复合主键。

编辑:实际上我是在美味派中实现它,我希望美味派认为它是一个真实的领域。这将解决我真正的问题。

4

1 回答 1

0

也许不要使用标准的 tasypie ModelResources,而是编写自己的资源:

class DictWrapper(object):
    '''
    to be used as generic tastypie resource object 
    '''
    def __init__(self, initial=None):
        self.__dict__['_data'] = {}

        if hasattr(initial, 'items'):
            self.__dict__['_data'] = initial

    def __getattr__(self, name):
        return self._data.get(name, None)

    def __setattr__(self, name, value):
        self.__dict__['_data'][name] = value

    def to_dict(self):
        return self._data

class ParentResource(Resource): 
    def get_object_list(self, request):        
        ret = []
        for parent in Parent.objects.all():
            ret.append(DictWrapper({"country_sig":"{0}.{1}".format(parent.country, parent.code})))
        return return

    def obj_get_list(self, request=None, **kwargs):      
        return self.get_object_list(request)
于 2012-07-12T20:13:18.503 回答